我正在尝试根据数组中的内容复选表单上的框。
var day = ["1", "2", "3", "4"]
这是html:
<div id="daysoftheweek" class="control-group uncheckit">
<label class="control-label" for="thedaysoftheweek">Which Days:</label>
<div class="controls" name="thedaysoftheweek">
<label class="checkbox inline">
<input type="checkbox" name="days" value="1"> Mon
</label>
<label class="checkbox inline">
<input type="checkbox" name="days" value="2"> Tue
</label>
<label class="checkbox inline">
<input type="checkbox" name="days" value="3"> Wed
</label>
<label class="checkbox inline">
<input type="checkbox" name="days" value="4"> Thu
</label>
<label class="checkbox inline">
<input type="checkbox" name="days" value="5"> Fri
</label>
<label class="checkbox inline">
<input type="checkbox" name="days" value="6"> Sat
</label>
<label class="checkbox inline">
<input type="checkbox" name="days" value="0"> Sun
</label>
</div>
</div>
所以,有了那个数组,我正试图检查周一,周二,周三和周四。 Console.log显示循环正常运行。
此版本仅保留选中的数组中的最后一个,即Thu复选框。如果我以3结尾,那么就会检查Wed但不是Mon和Tue。
for (_i = 0, _len = days.length; _i < _len; _i++) {
day = days[_i];
$("input[name=days]").val([day]);
}
这个设置所有单选按钮:
for (_i = 0, _len = days.length; _i < _len; _i++) {
day = days[_i];
$("input[name=days]").val([day]).prop('checked', true);
}
感谢您的任何想法, 查理马吉
答案 0 :(得分:0)
您需要使用值作为选择器
var days= ["1", "2", "3", "4"]
for (var _i = 0, _len = days.length; _i < _len; _i++) {
$("input[name=days][value=" + days[_i] + "]").prop('checked', true);
}
演示:Fiddle
阵列名称也应为days
答案 1 :(得分:0)
忽略复选框应具有不同名称(单选按钮共享名称属性)的事实,您可以这样做:
var day = ["1", "2", "3", "4"];
$('input[name="days"]').filter(function (i) {
return $.inArray(this.value, day) > -1
}).prop('checked', true)
<强> jsFiddle example 强>