我无法获取动态复选框的选中值。我究竟做错了什么? 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]);
});
答案 0 :(得分:5)
在警报中输出myArray
时出错(未定义i
个变量)。
但是,您的代码可以更好地构建。这是一个解决方案:
$("#envoyer").click(function(e) {
var myArray = [];
$(":checkbox:checked").each(function() {
myArray.push(this.value);
});
alert("Checked: " + myArray.join(","));
});
答案 1 :(得分:3)
你有Uncaught ReferenceError: i is not defined
;我在这里更新了你的小提琴:
$('#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循环