如何检查输入值是否等于以下任何一项,然后选中复选框

时间:2017-01-10 18:13:55

标签: javascript jquery html

我有一些工作脚本,但我知道有一种方法可以使用if语句来清理它,但我永远无法使它工作。

我正试图找到一种方法来搜索该值是否等于2,3或5.如果是,则选中该复选框。

这是脚本:

var num = 5;
$('input:checkbox[value="' + num + '"]').attr('checked', true);
var num = 2;
$('input:checkbox[value="' + num + '"]').attr('checked', true);
var num = 3;
$('input:checkbox[value="' + num + '"]').attr('checked', true);

HTML:

<div id="select">
<input type="checkbox" name="my_check[]" value="1">
<input type="checkbox" name="my_check[]" value="2">
<input type="checkbox" name="my_check[]" value="3">
<input type="checkbox" name="my_check[]" value="4">
<input type="checkbox" name="my_check[]" value="5">
</div>

This fiddle shows it working

4 个答案:

答案 0 :(得分:2)

您可以将地图用于多个值。按下单个数组中的值并使用arry上的map来表示值。

[5,2,3].map(function(num){
    $('input:checkbox[value="' + num + '"]').prop('checked', true);
})

工作小提琴 https://jsfiddle.net/d393savL/1/

PS:根据@Mike的建议更改了使用道具的答案谢谢:)

答案 1 :(得分:2)

使用.forEach()

var values = [2, 3, 5];
values.forEach(function(value) {
   $('input:checkbox[value="' + value + '"]').prop('checked', true);
});

这将“循环”通过您的values变量,尝试使用匹配值检查任何checkbox

答案 2 :(得分:0)

遍历所有输入复选框并检查值属性

$(function(){
  $('input[type="checkbox"]').each(function(index, item){
    switch($(item).attr('value')) {
        case '2':
      case '3':
      case '5': $(item).prop('checked', true);
      break;

    }

  })
})

<强> JSFIDDLE

答案 3 :(得分:0)

与其他人类似,但利用选择器。您可以在一个字符串中包含多个选择器,因此让jQuery更容易执行循环。

&#13;
&#13;
$(function () {
  $(':checkbox[value="2"],:checkbox[value="3"],:checkbox[value="5"]').prop('checked', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="select">
<input type="checkbox" name="my_check[]" value="1">
<input type="checkbox" name="my_check[]" value="2">
<input type="checkbox" name="my_check[]" value="3">
<input type="checkbox" name="my_check[]" value="4">
<input type="checkbox" name="my_check[]" value="5">
</div>
&#13;
&#13;
&#13;