簡體   English   中英

jQuery復選框重置-操作不一致

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM