麻烦设置基于数组的复选框

时间:2014-02-06 00:33:50

标签: jquery arrays input checkbox

我正在尝试根据数组中的内容复选表单上的框。

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);
}

感谢您的任何想法, 查理马吉

2 个答案:

答案 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