2

我有一个功能可以通过执行以下操作取消选中复选框:

$('[name = destination]').removeAttr('checked');

现在我希望在复选框上触发一个事件,就像我手动检查它一样。有这方面的活动吗?

我试过改变并点击。当我手动选中/取消选中该框时,两者都可以工作,但像这样完成时则不行。

4

3 回答 3

2

而不是删除属性,为什么不将属性设置为 false

$('[name = destination]').removeAttr('checked');

尝试

$('[name = destination]').prop('checked', false);

然后写下处理您正在寻找的此功能的事件

$('[name = destination]').on('click' , function(){
  var $chk = $('[name="description"]');
  if($chk.is(':checked')){
       console.log('Checkbox is checked !!');
  }
  else{
       console.log('Checkbox is now UNCHECKED !!');
  }
});

$('[name = destination]').prop('checked', false).trigger('click');

您也可以使用.trigger()方法手动触发事件

  $('[name = destination]').trigger('click');

触发事件时要小心

如果您使用它来检查状态,则在这种情况下可能不会反映当前的属性状态

检查小提琴

于 2013-01-11T20:11:38.297 回答
1

当您更改属性时,您将需要手动触发 a changeor事件(并且您可能应该通过而不是 来执行此操作,正如另一位海报提到的那样)clickcheckedpropchangeAttribute

这只是意味着,而不仅仅是

$('[name = destination]').removeAttr('checked');

$('[name = destination]').removeAttr('checked');
$('[name = destination]').trigger('click');
于 2013-01-11T20:11:27.743 回答
0

$('[name = destination]').click(); 触发事件

它将在您手动单击复选框时起作用

于 2013-01-11T20:12:45.490 回答