首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery复选框重置-操作不一致

jquery复选框重置-操作不一致
EN

Stack Overflow用户
提问于 2017-03-21 21:24:18
回答 2查看 51关注 0票数 0

我想使用Jquery重置复选框。我已经阅读了关于这个主题的Q/A,并提出了这个问题:

代码语言:javascript
复制
<script>
$(document).ready(function(){
    $("#clearall").click(function(){
        alert('clearing checkboxes');
        $('input:checkbox').attr('checked',false);
    });
});
</script>
<input id="cb1" type="checkbox" checked>
<input id="cb2" type="checkbox" checked >
<button id="clearall">Click me</button>

加载时,两个复选框将显示为选中状态。单击该按钮可清除它们。这和预期的一样。令人意想不到的是,如果我选中这些框并单击按钮,则复选框不会清除。不会出现javascript错误或警告。我检查了Firefox、Safari和Chrome的功能--它们的操作方式都是一样的。我插入了一个警报,它会在每次尝试时触发,所以函数正在执行-但复选框在第一次尝试后不会被重置。如果复选框是由用户设置的,那么为什么复选框不会被清除,是否有人可以提供一些见解?

EN

回答 2

Stack Overflow用户

发布于 2017-03-21 21:26:42

提示:在处理布尔属性(如disabled、checked、selected等)时,不要使用.attr()**,** .removeProp()**,或** .removeAttr()**.**,为什么要使用.prop()和?这是因为thisthis

  • .attr()和value.
  • .removeProp()::属性是动态的,而属性不是--它们反映初始的.removeAttr()

注意:请勿使用removeProp()删除本机属性,如选中、禁用或选定。这将完全删除该属性,并且一旦删除,将无法再次添加到元素中。

代码语言:javascript
复制
$(document).ready(function(){
    $("#clearall").click(function(){
        $('input:checkbox').prop('checked',false);
    });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="cb1" type="checkbox" checked>
<input id="cb2" type="checkbox" checked >
<button id="clearall">Click me</button>

票数 0
EN

Stack Overflow用户

发布于 2017-03-21 21:28:09

尝试使用.removeAttr('checked')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42928477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档