[英]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");
為什么不匹配disabled
為false
元素?
$('[disabled="false"]').removeAttr('disabled');
演示: http : //jsfiddle.net/ASN29/
無論屬性的值如何, disabled
屬性的存在都會自動disabled
該元素,因此這不是一個好主意。 HTML如何變成這種方式?
您可以簡單地使用這樣的選擇器:
$('input[disabled="false"]').removeAttr("disabled");
而不是*
,我添加了input
,它縮小了查詢范圍。 這將搜索具有名為disabled
的屬性的input
元素,其值為false
。
我建議你根本不要這樣做。 應該從未生成過該HTML。
如果你想啟用它們,請使用.prop()
代替..( 因為disabled
了checkbox
輸入的實際屬性 )
$('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">
$('input[disabled="false"]').removeAttr("disabled");
至於這是否是一個好主意,另一方面......我認為真正的答案是修復服務器端渲染,以完全忽略未禁用的元素的禁用屬性。 否則,如果您的腳本出錯,noscript等,您將最終禁用所有元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.