[javascript] Value et Input Radio...

Value et Input Radio... [javascript] - Programmation

Marsh Posté le 07-02-2002 à 15:04:26    

Salut !
 
bon j'ai un prob vodou là :)
 
J'ai une forme bidon : form2
 
j'ai :
<INPUT type="radio" name="choix" size="51" value="oui" checked onclick="radioChange()">
 
Ds mon JS, la function radioChange() dit
 
alert(document.form2.choix.value) ;
 
reponse du navigateur : "undefined" ?! alors que je m'attends à voir "OUI" !
 
Si ds ce JS, je triche en disant :
document.form2.choix.value = "oui"
 
là il m'affiche "OUI" !!!!!
 
Moi pas comprendre, pkoi il me prend pas la value OUI d'office ?
 
Merci

Reply

Marsh Posté le 07-02-2002 à 15:04:26   

Reply

Marsh Posté le 07-02-2002 à 15:06:51    

non, tu dois te planter qq part. quand tu 'triches', tu assignes en fait une nouvelle variable à document.form2.choix  
 
dans ton handler :
 
<input ... onclick="radioChange()">
 
tu dois récupérer un pointeur vers l'input directement avec this, ou avec event.srcElement.
 
ie
 
function radioChange()
{
  alert(this.value);
  // ou
  alert(event.srcElement.value);
}

Reply

Marsh Posté le 07-02-2002 à 15:12:19    

youdontcare a écrit a écrit :

non, tu dois te planter qq part. quand tu 'triches', tu assignes en fait une nouvelle variable à document.form2.choix  
 
dans ton handler :
 
<input ... onclick="radioChange()">
 
tu dois récupérer un pointeur vers l'input directement avec this, ou avec event.srcElement.
 
ie
 
function radioChange()
{
  alert(this.value);
  // ou
  alert(event.srcElement.value);
}  




 
attends je capte pas, si je remplace radio par text et que je mets VALUE="oui" ds l'input et bien ca marche !
 
pkoi pas avec Value ? (ss tricher j'entends)

Reply

Marsh Posté le 07-02-2002 à 15:19:19    

effectivement je raconte nimpe :D
 
c'est pas .value mais .checked .

Reply

Marsh Posté le 07-02-2002 à 15:43:22    

Ok je viens de piger !
 
ca marche pas car il a pas affecté la "value" qd il lance la function :) Cong que je suis !!
 
Normal c ds le meme input !
 
je vais faire autrement !
 
Merci pour tes lumières ;)
 
a+

Reply

Marsh Posté le 07-02-2002 à 17:32:27    

Oui ben ds le même esprit j'ai un autre prob ! je pige pas comment réfléchissent ces Radio button !!!
 
mon code
 
<BODY>
 
<script language="javascript">
 function display()
 {
  alert(document.form1.toto.checked) ;
 }
</script>
 
<form name=form1 METHOD="post" ACTION="mailto:mon mail">
<INPUT type="radio" name="toto" value="oui" checked>oui<br>
<INPUT type="radio" name="toto" value="non">non<br>
<INPUT type="submit" onclick="display();">
</form>
 
 
</BODY>
 
Dc le formulaire arrive bien chez moi avec la bonne value mais le display me renvoie UNDEFINED ?? Pkoi ?
 
Là ya CHECKED, mais avec VALUE c'est la même réponse !
 
je pige pas...
 
merci

Reply

Marsh Posté le 07-02-2002 à 17:40:15    

normal, comment le navigateur peut deviner lequel des deux 'toto' tu veux afficher ? si deux éléments ont le même nom, on y accède par un tableau, ie  
 
alert(document.form1.toto[0].checked) pour le premier élément
alert(document.form1.toto[1].checked) pour le second
 
(tu peux tester document.form1.toto.length pour avoir le nombre d'éléments du tableau. s'il n'y a qu'un élément portant le nom 'toto', ....toto.length renvoie 'undefined';).

Reply

Marsh Posté le 07-02-2002 à 17:43:42    

youdontcare a écrit a écrit :

normal, comment le navigateur peut deviner lequel des deux 'toto' tu veux afficher ? si deux éléments ont le même nom, on y accède par un tableau, ie  
 
alert(document.form1.toto[0].checked) pour le premier élément
alert(document.form1.toto[1].checked) pour le second
 
(tu peux tester document.form1.toto.length pour avoir le nombre d'éléments du tableau. s'il n'y a qu'un élément portant le nom 'toto', ....toto.length renvoie 'undefined';).  




 
Ahhhh ! Dummy :)
 
moi je pensais qd même qu'il voyait lequel des 2 était checké qd même :sarcastic:
 
Mais bon c pas le cas !! :)
 
Merci a+  ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed