0

グループ内の選択されたすべてのチェックボックスの値の配列を作成しようとしています (このページには複数のチェックボックス グループがありますが、以下はその 1 つです)。

チェックボックスをクリックすると、最初に値が「0」のアラートが表示され、次に値が「1」のアラートが表示されます。これは予想通りです。ただし、2 番目のチェックボックスをオンにすると、アラートが表示されなくなります。Chrome コンソールにもエラーは表示されません。

なんで?

HTML

    <table id="CPHCenter_cblFeatures" class="cblist textbox" style="width:100%;">
        <tbody>
            <tr>
                <td>
                <input id="CPHCenter_cblFeatures_0" type="checkbox" name="ctl00$CPHCenter$cblFeatures$0" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$0\',\'\')', 0)" value="6">
                <label for="CPHCenter_cblFeatures_0">Arbor</label></td>
                <td><input id="CPHCenter_cblFeatures_4" type="checkbox" name="ctl00$CPHCenter$cblFeatures$4" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$4\',\'\')', 0)" value="7"><label for="CPHCenter_cblFeatures_4">Disabled access</label></td>
            </tr><tr>
                <td><input id="CPHCenter_cblFeatures_1" type="checkbox" name="ctl00$CPHCenter$cblFeatures$1" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$1\',\'\')', 0)" value="3"><label for="CPHCenter_cblFeatures_1">Beach</label></td>
                <td><input id="CPHCenter_cblFeatures_5" type="checkbox" name="ctl00$CPHCenter$cblFeatures$5" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$5\',\'\')', 0)" value="4"><label for="CPHCenter_cblFeatures_5">Forest</label></td>
            </tr><tr>
                <td><input id="CPHCenter_cblFeatures_2" type="checkbox" name="ctl00$CPHCenter$cblFeatures$2" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$2\',\'\')', 0)" value="1"><label for="CPHCenter_cblFeatures_2">Bridal suite</label></td>
                <td><input id="CPHCenter_cblFeatures_6" type="checkbox" name="ctl00$CPHCenter$cblFeatures$6" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$6\',\'\')', 0)" value="2"><label for="CPHCenter_cblFeatures_6">Garden</label></td>
            </tr><tr>
                <td><input id="CPHCenter_cblFeatures_3" type="checkbox" name="ctl00$CPHCenter$cblFeatures$3" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$3\',\'\')', 0)" value="5"><label for="CPHCenter_cblFeatures_3">Dancing room</label></td>
                <td><input id="CPHCenter_cblFeatures_7" type="checkbox" name="ctl00$CPHCenter$cblFeatures$7" onclick="javascript:setTimeout('__doPostBack(\'ctl00$CPHCenter$cblFeatures$7\',\'\')', 0)" value="8"><label for="CPHCenter_cblFeatures_7">Water</label></td>
            </tr>
        </tbody>
    </table>

jQuery

     function getresults() {           
         var arr = new Array();
         $.each($("input[name*='cblFeatures']:checked"), function () {
             arr.push($(this).val());
         });

         alert(arr.length);
         arr = new Array();
         return true;
     }



     $(document).ready(function () {
         $("#<%=cblFeatures.ClientID%>").click(function () { getresults(); });
         });
4

3 に答える 3

1

セレクターに問題があるように思え#<%=cblFeatures.ClientID%>ます...おそらく、この効果のために何かを試してください:

 $(document).ready( function() {
     $("input[name*='cblFeatures']").click(function() { getresults(); });
 });

これは、意図したとおりに機能するフィドルです: http://jsfiddle.net/tcQwd/

それが役立つことを願っています!

于 2013-07-23T18:29:35.003 に答える
0

を定義し、classそれcheckboxesを一意の属性clickとしてイベントに使用し、を使用したクリック イベントはその特定の に対してのみ機能します。各チェックボックスにクラスを適用したと仮定すると、次のように実行できますididcheckboxcheckbox

$(".checkbox").click(function () { getresults(); });
于 2013-07-23T18:26:40.323 に答える
0

クリック イベントを 1 つの ID にのみ割り当てています。

$("#<%=cblFeatures.ClientID%>").click(function () { getresults(); });
于 2013-07-23T18:27:46.980 に答える