我输入的输入复选框如下所示。
<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");
答案 0 :(得分:2)
为什么不匹配disabled
为false
的元素?
$('[disabled="false"]').removeAttr('disabled');
disabled
属性的存在会自动禁用该元素,而不管属性的值如何,因此这不是一个好主意。 HTML如何成为这种方式?
答案 1 :(得分:2)
你可以简单地使用这样的选择器:
$('input[disabled="false"]').removeAttr("disabled");
我添加*
而不是input
,而是缩小了查询范围。这将搜索具有值为input
的{{1}}属性的disabled
元素。
我建议你根本不要这样做。该HTML应该从未生成过。
答案 2 :(得分:0)
$(document).ready(function (){
$('input:disabled').removeAttr('disabled');
});
以下是关于jsFiddle for it
的:disabled selector和文档答案 3 :(得分:0)
$('input[disabled="false"]').removeAttr("disabled");
另一方面,至于这是否是一个好主意......我认为真正的答案是修复服务器端渲染,以完全忽略未禁用的元素的禁用属性。否则,如果脚本出错,noscript等等,你最终会禁用所有元素。
答案 4 :(得分:0)
如果你想启用它们,请改用.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">