Changement de l'évènenement onclick

Résolu
bernidupont Messages postés 21 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 1 décembre 2012 - 7 déc. 2009 à 23:08
bernidupont Messages postés 21 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 1 décembre 2012 - 8 déc. 2009 à 23:57
Bonsoir à tous,
savez vous comment change t on la valeur d'un bouton par exemple qui possède la valeur onclick?

voici un exemple très simple d'una page html avec un html qui change d'état:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5" />
<title>Test</title>
</head>

<SCRIPT language="Javascript">


function annuler() {

alert ("ok");
}

function hello() {

document.getElementById('test').value = "annuler";
document.getElementById('test').id = "annuler";
document.getElementById('test').onclick= function(){ alert("ok"); } ;


}

</SCRIPT>








</html>


Lorsque j'appuie sur Test, les attributs 'id' et 'value' sont bien changé, mais l'attribut 'onclick' ne l'ait pas! pouvez vous me dire comment procéder?

Merci d'avance pour votre aide,
berni ;-)

3 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
8 déc. 2009 à 09:21
Bien le bonjour,
En fait cette "erreur" est "juste"...
Pourquoi ? il y a un changement d'identifiant ici:
document.getElementById('test').id = "annuler"; 

donc, le traitement:

document.getElementById('test').onclick= function(){ alert("ok"); } ; 


ne peut plus fonctionner. le contrôle ayant pour identifiant test n'existe plus.

Pour corriger, il faudrait faire:

function hello() {
var _obj = document.getElementById("test");
_obj.value = "annuler";
_obj.id = "annuler";
_obj.onclick= function(){ alert("ok"); } ;
}


la, ça devrait aller un peu mieux
[o-_-o]
3
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
8 déc. 2009 à 22:01
tout simplement parce que qand tu fait

document.getElementById('test').id = "annuler";


tu modifi l'id de l'element son id devient "annuler"
0
bernidupont Messages postés 21 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 1 décembre 2012
8 déc. 2009 à 23:57
Merci Zobidol je vois où est le problème!
@ bientôt, berni.
0
Rejoignez-nous