使用jQuery获取动态复选框值

时间:2012-06-01 20:20:25

标签: javascript jquery checkbox

我无法获取动态复选框的选中值。我究竟做错了什么? 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]);
});

6 个答案:

答案 0 :(得分:5)

在警报中输出myArray时出错(未定义i个变量)。

但是,您的代码可以更好地构建。这是一个解决方案:

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

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

DEMO: http://jsfiddle.net/hxfsB/25/

答案 1 :(得分:3)

你有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表示未选中此复选框。

我希望这有帮助!

答案 2 :(得分: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>

答案 3 :(得分:0)

试一试:http://jsfiddle.net/hxfsB/27/

选择器存在问题

答案 4 :(得分:0)

$('#envoyer').click(function(e){
    var myArray=new Array(3);

    $('input[type=checkbox]:checked').each(function(i) {
       myArray[i] = $(this).val();
       //alert($(this).val());
    });
}​);​

答案 5 :(得分:0)

i中的myArray[i]在任何地方都不存在。您需要将警报放在for循环中并使用myArray[j]或使用i创建新的for循环