如何根据值检查复选框?

时间:2011-11-29 18:47:03

标签: jquery html checkbox

我正在返回一个JSON数据结构,我将其拆分并填充我的数组:

var arrayValues = data.contents.split('|');

// arrayValues = 1,3,4

如何根据数组值检查相应的复选框?

我的HTML看起来像这样:

 <div id="divID">
     <input type="checkbox" name="test" value="1" /> Test 1<br />
     <input type="checkbox" name="test" value="2" /> Test 2<br />
     <input type="checkbox" name="test" value="3" /> Test 3<br />
     <input type="checkbox" name="test" value="4" /> Test 4<br />
     <input type="checkbox" name="test" value="5" /> Test 5<br />                           
 </div>

5 个答案:

答案 0 :(得分:18)

使用属性选择器

尝试此操作
$.each(arrayValues, function(i, val){

   $("input[value='" + val + "']").prop('checked', true);

});

答案 1 :(得分:9)

的Javascript

$.each(arrayValues, function (index, value) {
  $('input[name="test"][value="' + value.toString() + '"]').prop("checked", true);
});

答案 2 :(得分:1)

你可以遍历你的数组并在jQuery上进行属性搜索

var i = 0;
while (arrayValues.length < i) {
  var val = arrayValues[i];
  $('#divID input[value="' + val + '"]').prop('checked', 'checked');
  i++;
}

docs:http://api.jquery.com/attribute-equals-selector/

答案 3 :(得分:1)

更简单:

$('input[name="test"]').val(arrayValues);

这将检查数组中的值并取消选择其他值。

来自JQuery的文档:http://api.jquery.com/val/

  

val()允许您传递元素值数组。这很有用   处理包含&lt; input等元素的jQuery对象时   type =“checkbox”&gt;,&lt; input type =“radio”&gt;,&lt; option&gt; s in a   &LT;选择取代。在这种情况下,输入和选项具有值   匹配数组中的一个元素将被选中或选中   而那些具有与其中一个元素不匹配的值的那些   取决于类型,数组将被取消选中或取消选中。

答案 4 :(得分:0)

好的,花了我一点时间来解决代码中的错误。 我想现在 ShankarSangoli 已经回答了这个问题。

我希望你不介意我以任何方式发布我的解决方案。我只是好奇,如果这对表现等更糟糕。

var arrayValues = new Array(1,3,4);

$('#divID input').filter(function(){
    return ($.inArray( parseInt($(this).attr('value')), arrayValues)) != -1;
}).attr('checked', 'checked');