如何根据值检查复选框?

Posted

技术标签:

【中文标题】如何根据值检查复选框?【英文标题】:How can I check checkboxes based on values? 【发布时间】:2012-01-09 02:29:57 【问题描述】:

我返回一个 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>

【问题讨论】:

什么标准会导致您选中/取消选中这些框 【参考方案1】:

使用属性选择器试试这个

$.each(arrayValues, function(i, val)

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

);

【讨论】:

这很好用......我所要做的就是包含父 div 标签。谢谢! 应该是.prop('checked',true)——虽然JS认为字符串“checked”是真的,所以最终结果是一样的。 这更简单:$('input[name="test"]').val(arrayValues); 在我的回答中查看详细信息 [***.com/a/44592561/2017567]【参考方案2】:

javascript

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

【讨论】:

这看起来比 ShankarSangoli 的解决方案更准确,尽管我不明白为什么中间的 .toString() 是必要的。当然value 在任何情况下都是一个字符串。 @mblase75 ... 只是我的一个习惯。 是的,作者可能已经使用 toString 来处理值是整数的情况,但是,在 DOM 中这也是字符串类型【参考方案3】:

更简单:

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

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

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

val() 允许您传递元素值的数组。这很有用 在处理包含

【讨论】:

【参考方案4】:

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

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

文档:http://api.jquery.com/attribute-equals-selector/

【讨论】:

【参考方案5】:

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

我希望你不介意我发布我的解决方案。我只是好奇这是否会影响性能等。

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

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

【讨论】:

以上是关于如何根据值检查复选框?的主要内容,如果未能解决你的问题,请参考以下文章

PHP复选框设置为根据数据库值进行检查

如何使用角度js根据数据库中的值设置复选框的选中属性

根据数组值使用 jquery 设置复选框

根据最初检查的复选框值在后退按钮单击时重新加载 Angular 6 反应式表单

检查另一个输入时如何根据一个输入更改值?反应钩子

如何根据名称和值检查单选按钮?