【发布时间】:2015-09-11 21:19:56
【问题描述】:
我连续有 3 个复选框,我发现这段代码很有效
$('input:checkbox').click(function () {
$(this).closest('tr').find('input:checkbox').prop('checked', false);
$(this).prop('checked', true);
});
但是,我有一个业务需求,我被告知如果有人点击了已选中的复选框,则必须取消选中。是的,我知道单选按钮通常用于“仅允许选择一项”,但是即使单选按钮也不是您可以单击“取消选择”的东西
复选框更自然地能够取消选择,但是使用我的功能,如果已经选择并单击,我会尝试取消选择,它总是转到 else 语句
$('input:checkbox').click(function () {
//alert('c');
$(this).closest('tr').find('input:checkbox').prop('checked', false);
if ($(this).checked)
{
alert('f');
$(this).prop('checked', false);
}
else {
alert('t');
$(this).prop('checked', true);
}
});
总结
有 3 个复选框,目前我的功能只允许检查其中的 1 个。但是现在我需要能够点击当前选中的复选框并取消选中它
【问题讨论】:
-
你想要什么?分部分和更好的方式解释。
-
有3个复选框,目前我的功能只允许检查其中1个。但是现在我需要能够单击当前选中的复选框并取消选中它
-
用
$(this).closest('tr').find('input:checkbox').prop('checked', false);取消选中单击的复选框,这就是为什么它总是转到else语句 -
那么为什么不能只使用单选按钮呢?如果您只希望每行选择 1 个复选框,这正是单选按钮的作用。
-
是的,我明白这一点,所以我确实想使用该代码,但在它周围包裹一个条件,检查它复选框已被选中并被点击,因为我确实需要允许取消选择所有他们
标签: javascript jquery html checkbox