簡體   English   中英

使用jQuery我們如何從值為false的所有元素中刪除disabled屬性?

[英]Using jQuery how can we remove disabled attribute from all elements whose value is false?

我輸入的輸入復選框如下所示。

<input type="checkbox" id="a1" value="11" disabled="false">
<input type="checkbox" id="a2" value="21" disabled="true">
<input type="checkbox" id="a3" value="31" disabled="false">

我知道disabled屬性沒有任何價值。 因此,當屬性存在時,無論分配給它的值如何,元素都將被禁用。 我想從值為false的所有輸入元素中刪除所有disabled屬性。

使用jQuery我想使用如下代碼。

$("*[disabled]").not(true).removeAttr("disabled");

為什么不匹配disabledfalse元素?

$('[disabled="false"]​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​')​.removeAttr('disabled');​​​

演示: http//jsfiddle.net/ASN29/

無論屬性的值如何, disabled屬性的存在都會自動disabled該元素,因此這不是一個好主意。 HTML如何變成這種方式?

您可以簡單地使用這樣的選擇器:

$('input[disabled="false"]').removeAttr("disabled");

jsFiddle演示

而不是* ,我添加了input ,它縮小了查詢范圍。 這將搜索具有名為disabled的屬性的input元素,其值為false

我建議你根本不要這樣做。 應該從未生成過該HTML。

如果你想啟用它們,請使用.prop()代替..( 因為disabledcheckbox輸入的實際屬性

$('input[disabled="false"]').prop('disabled', false);

演示http://jsfiddle.net/gaby/Bn4dr/


但是,正確的方法是直接打印正確的html

<input type="checkbox" id="a1" value="11">
<input type="checkbox" id="a2" value="21" disabled>
<input type="checkbox" id="a3" value="31">
​$(document).ready(function (){
    $('input:disabled').removeAttr('disabled');    
});​

以下是jsFiddle及其文檔:禁用選擇器

$('input[disabled="false"]').removeAttr("disabled");

http://jsfiddle.net/JKs4C/

至於這是否是一個好主意,另一方面......我認為真正的答案是修復服務器端渲染,以完全忽略未禁用的元素的禁用屬性。 否則,如果您的腳本出錯,noscript等,您將最終禁用所有元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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