[英]jquery checkbox reset - inconsistent operation
我想使用Jquery重置復選框。 我已經閱讀了有關該主題的問答,並提出了以下建議:
<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中的功能-所有3種功能的運行方式相同。 我插入了一個警報,每次嘗試都會觸發該警報,因此該函數正在執行-但復選框在第一次后不會重置。 任何人都無法提供任何洞察力,以了解為什么如果用戶設置了復選框,則復選框不會清除?
提示:處理布爾屬性(如禁用,選中,選中等)時,請使用.prop()
, 切勿使用.attr()
.removeProp()
或.removeAttr()
。 為什么? 這是因為這個和這個 。
.attr()
和.removeAttr()
:屬性是動態的,而屬性不是-它們反映了初始值。 .removeProp()
:
注意:不要使用
removeProp()
刪除本機屬性,例如選中,禁用或選中。 這將完全刪除該屬性,並且一旦刪除,就不能再次將其添加到element中。
$(document).ready(function(){ $("#clearall").click(function(){ $('input:checkbox').prop('checked',false); }); });
<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>
嘗試使用.removeAttr('checked')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.