0

我有一个带有复选框的表格。当用户点击标签时,我有自定义复选框图标被交换。这很好用,但我也禁用了表单中的复选框,并且我不希望在单击禁用的复选框时触发单击事件。我怎么做?

查询:

$('input[type=checkbox] + label').click(function() {
  $(this).toggleClass('checkbox-pressed');
});

HTML:

<input type="checkbox" id="A"><label for="A">Option 1</label>
<input disabled type="checkbox" id="B"><label for="B">Option 2 - don't trigger JQ</label>
4

3 回答 3

6

用于:not(:disabled)仅选择那些未被禁用的复选框。

$('input[type=checkbox]:not(:disabled)').click(function() {
    ...
});

文档::not():disabled


你应该使用.on(). 否则,它不适用于disabled在页面最初加载后变为的复选框(例如,由于某些用户操作):

$(document).on('click', 'input[type=checkbox]:not(:disabled)', function() {
    ...
});
于 2013-07-19T14:27:13.547 回答
3

您可以:enabled像这样使用选择器:

$(':checkbox:enabled').click(function() {
    // Your code here...
});
于 2013-07-19T14:30:14.130 回答
0

在 jQuery中使用:checked会更容易

你可以在这里找到更多。

于 2013-07-19T14:27:26.277 回答