“复选框更改”会导致无限循环

时间:2017-10-23 09:46:53

标签: javascript jquery checkbox

我的要求是选中/取消选中复选框更改事件上的所有其他复选框 但结果是无限循环。

$(".chk").change(function(event) {
  var $this = $(this);
  var id = $this.attr('id');
  var chkOtherCheckboxes = 'on';
  if ($this.is(':checked')) {
    chkOtherCheckboxes = 'off';
  }
  $('input:checkbox:not("#' + id + '")').bootstrapToggle(chkOtherCheckboxes);
});

2 个答案:

答案 0 :(得分:1)

禁用bootstrapToggle并更改输入,然后重新启用。

$(".chk").change(function(event) {
  var id = this.id;
  var status = !this.checked;
  $('input:checkbox:not("#' + id + '")').each(function(){
    $(this).bootstrapToggle('destroy');
    $(this).prop('checked', status);
    $(this).bootstrapToggle();
  });
});

答案 1 :(得分:0)

当用户点击复选框时,您再次更改同一个复选框{。{1}}。

.chk

//无限循环

确保您没有触发当前复选框的更改。

如果有帮助,请告诉我。