5

動的チェック ボックスのチェックされた値を取得できません。私は何を間違っていますか?http://jsfiddle.net/hxfsB/17/

マークアップ:

<html>
    <body>
      one<input type="checkbox" name='checkbox0' value="one_name" checked>
     two<input type="checkbox" name='checkbox1' value="one_name1">
     three<input type="checkbox" name='checkbox2' value="one_name2">
         <input type="button" id="envoyer" value="Envoyer Reponse"  /> 
    </body>
</html>

Javascript:

$('#envoyer').click(function(e){
    var myArray=new Array(4);
    for ( var j = 0; j < 3; j++){ 
        var check=$('input:checkbox[name=checkbox'+j+']').is(':checked');
        if(check==true)
            myArray[j]=$('input:checkbox[name=checkbox'+j+']').val();
    }
    alert('check '+" "+myArray[i]);
});
4

6 に答える 6

5

myArrayalert での出力時にエラーが発生しました(i変数が定義されていません)。

ただし、コードをより適切に構造化できます。ここに1つの解決策があります:

$("#envoyer").click(function(e) {
    var myArray = [];
    $(":checkbox:checked").each(function() {
        myArray.push(this.value);
    });

    alert("Checked: " + myArray.join(","));
});​

デモ: http://jsfiddle.net/hxfsB/25/

于 2012-06-01T20:24:32.243 に答える
4

あなたはUncaught ReferenceError: i is not defined;を持っていました。ここでフィドルを更新しました:

http://jsfiddle.net/hxfsB/24/

$('#envoyer').click(function(e){
    var myArray = new Array(3);
    for ( var j = 0; j < 3; j++) { 
        var check=$('input:checkbox[name=checkbox'+j+']').is(':checked');
        if(check==true)
            myArray[j]=$('input:checkbox[name=checkbox'+j+']').val();

        // Alert Current Selection //
        alert('check ' + " " + myArray[j] );
    }    
});

注意:undefinedチェックボックスが選択されていないことを意味します。

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

于 2012-06-01T20:24:57.213 に答える
1

あなたのタイトルが示唆するように、チェックされたチェックボックスの値を取得したい場合は、これを行うことができます。

Javascript:

$('#envoyer').click(function(e){
    $('input[type="checkbox"]:checked').each(function(){
        alert(this.value);
    })        
})​

マークアップ

<html>
    <body>
      one<input type="checkbox" name='checkbox0' value="one_name" checked>
      two<input type="checkbox" name='checkbox1' value="one_name1">
      three<input type="checkbox" name='checkbox2' value="one_name2">
        <input type="button" id="envoyer" value="Envoyer Reponse"  /> 
    </body>
</html>
于 2012-06-01T20:32:37.940 に答える
0

これを試してください:http://jsfiddle.net/hxfsB/27/

セレクターに問題がある

于 2012-06-01T20:25:48.250 に答える
0
$('#envoyer').click(function(e){
    var myArray=new Array(3);

    $('input[type=checkbox]:checked').each(function(i) {
       myArray[i] = $(this).val();
       //alert($(this).val());
    });
}​);​
于 2012-06-01T20:26:07.417 に答える
0

インはどこimyArray[i]もありません。アラートを for ループ内に配置して使用するmyArray[j]か、使用して新しい for ループを作成する必要があります。i

于 2012-06-01T20:26:27.060 に答える