0

それぞれにチェックボックスが付いたアイテムの長いテーブルがあります。Onchange チェックされた値を警告するだけの関数を呼び出します。

<input class="selectedCB" id="13" onchange="showInput(13);" type="checkbox">
<input class="selectedCB" id="14" onchange="showInput(14);" type="checkbox">
<script language="JavaScript" type="text/javascript"><!--
  function showInput(idx) {
    alert($('#'+idx).prop('checked'));    
  }
//--></script>

私のページ(他のスクリプトやものでいっぱい)では、一部から undefined を取得し、他のものから正しい値を取得します。「きれいな」テストページでは、完全に機能します。チェックしたときに未定義のままになっている可能性のあるものをどこから探し始めればよいかわかりません。何か案は?

4

3 に答える 3

2

onchange次のような属性を設定できます。

 onchange="showInput(this.checked);"

そして次のようなJavaScript:

function showInput(ischecked) {
    alert(ischecked);
}  

フィドルのデモ

于 2013-06-10T12:18:07.533 に答える
1

:checkedセレクターと.is()フィルター メソッドを使用してみてください

<input class="selectedCB" id="13" onchange="showInput(13);" type="checkbox">
<input class="selectedCB" id="14" onchange="showInput(14);" type="checkbox">
<script language="JavaScript" type="text/javascript"><!--
  function showInput(idx) {
    alert($('#'+idx).is(':checked'));    
  }
//--></script>
于 2013-06-10T12:18:55.187 に答える
0

いくつかのチェックボックスを取得undefinedしていて、他のチェックボックスを取得していないため、ハンドラーを割り当てるときにタイプミスがあるに違いありません。

すべてのチェックボックスに対してハンドラーを 1 回割り当ててみて、それが役立つかどうかを確認します。

$(function() {
    $('input[type="checkbox"].selectedCB').on('change', function(e) {
        alert($(this).prop('checked'));
    };
});
于 2013-06-10T12:18:13.860 に答える