我在使用JQuery检查和取消选中输入时遇到了一些麻烦。我知道.prop是正确的方法,但它似乎并没有为我工作。这是我的代码:
HTML:
<div class="checkwrap"><input name="mentoringType" type="checkbox" checked="false" value="test">test</div>
JS:
$('.checkwrap').click(function() {
if ($(this).find('input').is(':checked')){
$(this).toggleClass('checkwrap-active').find('input').filter(':checkbox').prop('checked',false);
} else {
$(this).toggleClass('checkwrap-active').find('input').filter(':checkbox').prop('checked',true);
}
});
输入包装用于样式目的。如果我使用.attr(&#39; checked&#39;,true / false),那么它可以将checked属性更改为 checked ,但不会取消选中。发生了什么事?
答案 0 :(得分:0)
茄子是对的:你应该使用lebel元素使“测试”可点击。
回答你的问题: 当只点击文本时,你的skript确实有效。
单击复选框时,它也可以,但不是预期的。在这种情况下,您的代码会导致执行的重复,因为click事件会冒出DOM树。
如果未选中此复选框,则单击该复选框即可选中该代码并输入您的代码,将其检测为已选中并再次取消选择。
对于未选中的框,反之亦然。
但如前所述:你应该首先选择一个标签。