Question

J'ai ce qui suit et dans cet ordre:

<script type="text/javascript">
  $(document).ready(function(){
     var overwrite = $('#itemList input:radio:checked').val() 

     alert('value = '+ overwrite);
  });
</script>
<body>
  <form ..... >
    <div id="itemList">
    Overwrite?
    <input type="radio" value="Yes" class="overWrite" name="overWrite" >Yes
    <input type="radio" value="No" class="overWrite" name="overWrite" >No
    </div>
  </form>
</body>

quand il fonctionne, l'alerte aura « valeur = non définie »

Mais, si je mets le javascript après la div (ou corps), l'alerte revient avec « valeur = Oui »

Pourquoi ne jquery reconnaît pas la radio de type au début de la page? Si je crée un type = « caché », jquery peut lire / reconnaître la valeur si au début de la page. Lorsque type = 'radio', le comportement est différent

Était-ce utile?

La solution

problème que vous utilisez en semble être qu'il n'y a tout simplement pas de boutons radio vérifiés sur la charge de la page afin que votre jquery retourne un objet nul.

vérifie « non » par défaut et renvoie la valeur correcte. Donc votre javascript est techniquement correct, il vous suffit de vérifier les valeurs NULL

<head>
<title>jQuery Tester</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

</head>

<body>
    <div id="itemList">
    Overwrite?
    <input type="radio" value="Yes" class="overWrite" name="overWrite"  />Yes
    <input type="radio" value="No" class="overWrite" name="overWrite" checked="checked" />No 
    </div>


<script type="text/javascript">
  $(document).ready(function(){
     var overwrite = $('#itemList input:radio:checked').val();

     alert('value = ' + overwrite);
  });
</script>
</body>
</html>

Autres conseils

J'ai eu le même problème avec 'indéfini'.

quand je l'ai testé cette

var isChecked = $('#itemList').attr('checked');

isChecked était 'non défini'

et pour cela

var isChecked = $('#itemList').prop('checked');

isChecked est vrai ou faux

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top