多个复选框设置已检查html

时间:2016-03-01 21:01:50

标签: jquery html arrays checkbox

我在js中有一个数组,其中包含我要设置的复选框名称。 问题是我做不好,我不知道为什么我错了 这是我的代码

var array = ['one','two word','three'];
for(var i = 0; i < array.length;i++)
$(':checkbox[value="'+array[i]+'"]').prop('checked', true);

使用此HTML

<input type="checkbox" name="one[]" value="two word">
<input type="checkbox" name="one[]" value="four">
<input type="checkbox" name="one[]" value="one">

使用此代码我的复选框保持未选中状态,有人可以告诉我原因吗?

2 个答案:

答案 0 :(得分:3)

True不是checked属性的有效属性值。该值可以省略,也可以为checked

&#13;
&#13;
var array = ['one','two word','three'];

for(var i = 0; i < array.length;i++) {
    $(':checkbox[value="'+array[i]+'"]').prop('checked', 'checked');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="one[]" value="two word">
<input type="checkbox" name="one[]" value="four">
<input type="checkbox" name="one[]" value="one">
&#13;
&#13;
&#13;

这里是W3C的规范

https://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.4

答案 1 :(得分:0)

它对我有用,除了一个项目有三个值而不是四个..

我修改了你的代码并得到了所有三个来检查你可以设置一个值 http://www.w3schools.com/jsref/prop_checkbox_value.asp

<input type="checkbox" name="one[]" value="two word">
<input type="checkbox" name="one[]" value="four">
<input type="checkbox" name="one[]" value="one">

var array = ['one','two word','four'];
for(var i = 0; i < array.length;i++) {
$(':checkbox[value="'+array[i]+'"]').prop('checked', true);
}

这是一个小提琴Sample fiddle