128

如何使用 javascript 从 HTML 输入中删除“禁用”属性?

<input id="edit" disabled>

在 onClick 我希望我的输入标签不包含“禁用”属性。

4

6 回答 6

245

将元素的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;
}

Wheredocument可以替换为表单,例如,仅查找该表单内的元素。您还可以使用getElementsByTagName('input')来获取所有输入元素。在您的for迭代中,您必须检查inputs[i].type == 'text'.

于 2012-07-30T10:50:56.953 回答
46

为什么不直接删除该属性?

  1. 香草JS:elem.removeAttribute('disabled')
  2. jQuery:elem.removeAttr('disabled')
于 2015-03-31T13:40:41.783 回答
5

最好的答案就是 removeAttribute

element.removeAttribute("disabled");
于 2020-06-01T11:07:11.893 回答
3

要使用输入的属性将设置disabled为 false :name

document.myForm.myInputName.disabled = false;
于 2013-06-08T13:19:28.873 回答
1
$("#input-id").attr("disabled", false)
于 2022-01-19T14:25:16.867 回答
0
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。

见演示https://jsfiddle.net/eliz82/xqzccdfg/

于 2016-09-18T13:19:37.103 回答