如何根据值检查输入框

时间:2013-12-31 10:10:54

标签: jquery

假设,我有以下的HTML

<input type="checkbox" name="products" value="1" id="product_1" />
<input type="checkbox" name="products" value="2" id="product_2" />
<input type="checkbox" name="products" value="3" id="product_3" />

jquery的:

var list = [1,2];

现在,如果列表中的值匹配,我就会选中如何选中复选框。在我的示例中,要准备好第一和第二输入。

7 个答案:

答案 0 :(得分:1)

尝试使用id选择器,因为id包含值

var list = [1, 2];
$.each(list, function (i, val) {
    $('#product_' + val).prop('checked', true)
})

演示:Fiddle

如果您正在进行重置操作,那么

var list = [1, 2];
$('input[name="products"]').prop('checked', function () {
    return $.inArray(parseInt(this.value), list) > -1
})

演示:Fiddle

答案 1 :(得分:0)

您可以遍历值数组,然后根据产品ID检查每个输入。

list.forEach(function(item) {
    $('#product_'+ item).prop('checked', true);
});

更高级的解决方案是构建一个选择器,然后立即检查它们。

$( list.map(function(item) {
    return '#product_'+ item;
}).join(',') ).prop('checked', true);

答案 2 :(得分:0)

你可以尝试这个吗,你可以使用id属性product_*作为选择器

var list = [1,2];

$.each(list,function( index, value ) {
   // alert( index + ": " + value );
    $("#product_"+value).prop('checked', true);
});

演示: http://jsfiddle.net/JhBAP/1/

答案 3 :(得分:0)

试试这个

HTML

<input type="checkbox" name="products[]" value="1" id="product_1" />
<input type="checkbox" name="products[]" value="2" id="product_2" />
<input type="checkbox" name="products[]" value="3" id="product_3" />

脚本

var list = [1, 2];
$("input[name='products[]']").each( function(i,j) {
if(jQuery.inArray(parseInt($(this).val()), list)!= -1){
$(j).attr('checked', 'checked'); //OR $(j).prop('checked', true);
}
});

DEMO

答案 4 :(得分:0)

我会做这样的事情:

$('[name=products][value=' + list.join('],[name=products][value=') + ']').prop('checked', true);

答案 5 :(得分:0)

您可以使用Jquery.inarray

var list=[1,2];
    $('input[name=products]').each(function(){
                  if(jQuery.inArray(parseInt($(this).val()), list)!=-1)
           {
               $(this).prop('checked', true);
           }
    });
  

FIDDLE

答案 6 :(得分:0)

$('input[name=products]').prop('checked', function() {
  return (list.indexOf(~~this.value) != -1);
});