Nic*_*Law 2 html javascript jquery
我有许多复选框,我想检查它们是被选中 (1) 还是未选中 (0)。我想将结果放在一个数组中,以便我可以将它们发送到服务器以保存在表中。我试过下面的代码:
<input class="publish" id="chkBox1" type="checkbox" checked>
<input class="publish" id="chkBox2" type="checkbox" checked>
<input class="publish" id="chkBox3" type="checkbox" checked>
<input class="publish" id="chkBox4" type="checkbox" checked>
<input class="publish" id="chkBox5" type="checkbox" checked>
<script>
$('#save-btn').click(function(evt){
evt.preventDefault();
var numberOfChBox = $('.publish').length;
var checkArray = new Array();
for(i = 1; i <= numberOfChBox; i++) {
if($('#chkBox' + i).is(':checked')) {
checkArray[i] = 1;
} else {
checkArray[i] = 0;
}
}
alert(checkArray);
});
</script>
Run Code Online (Sandbox Code Playgroud)
但警报输出:
,1,0,1,0,1,1
Run Code Online (Sandbox Code Playgroud)
除了 undefined 中的第一个索引外,这些值都是正确的。总共只有 5 个复选框,但数组有 6 个索引长。为什么是这样?
尝试这种有效的方式 bruvo :) http://jsfiddle.net/v4dxu/在 html 中使用适当的结束标记:http : //jsfiddle.net/L4p5r/
很好的链接:https : //learn.jquery.com/javascript-101/arrays/
同样在你的 html 结束你的标签/>即
<input class="publish" id="chkBox4" type="checkbox" checked>
休息应该有帮助 :)
代码
var checkArray = new Array();
$('input[type=checkbox]').each(function () {
this.checked ? checkArray.push("1") : checkArray.push("0");
});
alert(checkArray);
Run Code Online (Sandbox Code Playgroud)