【发布时间】:2012-07-30 10:49:38
【问题描述】:
如何使用 javascript 从 HTML 输入中删除“禁用”属性?
<input id="edit" disabled>
在 onClick 我希望我的输入标签不包含“禁用”属性。
【问题讨论】:
标签: javascript input attributes
如何使用 javascript 从 HTML 输入中删除“禁用”属性?
<input id="edit" disabled>
在 onClick 我希望我的输入标签不包含“禁用”属性。
【问题讨论】:
标签: javascript input attributes
将元素的disabled属性设置为false:
document.getElementById('my-input-id').disabled = false;
如果您使用的是 jQuery,则相当于:
$('#my-input-id').prop('disabled', false);
对于多个输入字段,您可以改为按类访问它们:
var inputs = document.getElementsByClassName('my-input-class');
for(var i = 0; i < inputs.length; i++) {
inputs[i].disabled = false;
}
其中document 可以替换为表单,例如,仅查找该表单内的元素。您还可以使用getElementsByTagName('input') 来获取所有输入元素。在您的 for 迭代中,您必须检查 inputs[i].type == 'text'。
【讨论】:
为什么不直接删除该属性?
elem.removeAttribute('disabled')
elem.removeAttr('disabled')
【讨论】:
jQuery("#success").removeAttr("disabled"); - 这对我有用,谢谢!
removeAttribute 似乎在 IE11 中受支持。我可以使用它被标记为unknown,所以我刚刚打开IE并检查它是否有效。确实如此。
最好的答案就是 removeAttribute
element.removeAttribute("disabled");
【讨论】:
使用输入的name 属性将disabled 设置为false:
document.myForm.myInputName.disabled = false;
【讨论】:
$("#input-id").attr("disabled", false)
【讨论】:
method 1 <input type="text" onclick="this.disabled=false;" disabled>
<hr>
method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled>
<hr>
method 3 <input type="text" onclick="this.removeAttribute('readonly');" readonly>
之前答案的代码似乎不能在内联模式下工作,但有一个解决方法:方法 3。
【讨论】:
method 1 <input type="text" onclick="this.disabled=false;" disabled> <hr> method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled>