如何根据Jquery中逗号分隔的文本框值选择复选框?

时间:2016-04-29 11:34:27

标签: jquery

我想根据逗号(,)分隔的文本框中的id传递选择复选框,如(1,2,3,..)。 我们怎样才能在jquery中实现这一点?



function cblist_check() {

  if ($('input[type=text][id$=rate]').val() != "") {
    var arrate = $('input[type=text][id$=rate]').val().split(',');
    for (var i in arrate) {
      $('[id$=listRates] input[type=checkbox]').attr("checked")

    }

  }

}

<div style='position:relative;'>
  <input type='checkbox' id='1' data-display-name='Rack/General' />
  <label for='1'>Rack/General</label>
  <img id='img_1' class='checkboxFixIconLeft' />
</div>
<div style='position:relative;'>
  <input type='checkbox' id='4' data-display-name='Government' />
  <label for='4'>Government</label>
  <img id='img_4' class='checkboxFixIconLeft' />
</div>
<div style='position:relative;'>
  <input type='checkbox' id='6' data-display-name='Package' />
  <label for='6'>Package</label>
  <img id='img_6' class='checkboxFixIconLeft' />
</div>
<div style='position:relative;'>
  <input type='checkbox' id='3' data-display-name='Family' />
  <label for='3'>Family</label>
  <img id='img_3' class='checkboxFixIconLeft' />


</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

你只需要将值与#selector,

连接起来
 var arrate = $('input[type=text][id$=rate]').val().split(',');
 for (var i in arrate) {
   $('#' + arrate[i]).prop("checked",true)
 }

Fiddle

答案 1 :(得分:0)

您不必迭代数组并单独设置检查。您可以使用.map()函数获取所有元素,然后一次性设置它们:

var arrate = $('input[type=text][id$=rate]').val().split(',');
var targetcheckboxes =$.map( arrate, function(i) { return document.getElementById(i) } );
$(targetcheckboxes).prop('checked', true);

答案 2 :(得分:0)

function cblist_check() {
    var s = ',' + $('input[type=text][id$=rate]').val() + ',';
    $('input[type=checkbox]').each(function(i, x){
        $(x).prop("checked", s.indexOf(',' + $(x).attr('id') + ',') > -1);
    });
}