4

私は次のものをこの順序で持っています:

<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>

実行すると、アラートは「値 = 未定義」になります。

しかし、div (または本文) の後に JavaScript を配置すると、アラートは「値 = はい」で返されます。

jquery がページの先頭にあるタイプ radio を認識しないのはなぜですか? type = 'hidden' を作成すると、ページの先頭にある場合、jquery は値を読み取ったり認識したりできます。type = 'radio' の場合、動作が異なります

4

2 に答える 2

5

あなたが直面している問題は、ページの読み込み時にチェックされたラジオボタンが単にないため、jquery が null オブジェクトを返すことです。

これにより、デフォルトで「いいえ」がチェックされ、正しい値が返されます。したがって、JavaScript は技術的に正しいので、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>
于 2010-01-13T23:59:53.160 に答える