Javascript javascript从html输入中删除“禁用”属性

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11719961/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 06:50:07  来源:igfitidea点击:

javascript remove "disabled" attribute from html input

javascriptinputattributes

提问by Jam Ville

How can I remove the "disabled" attribute from an HTML input using javascript?

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

<input id="edit" disabled>

at onClick I want my input tag to not consist of "disabled" attribute.

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

回答by dxh

Set the element's disabledproperty to false:

将元素的disabled属性设置为 false:

document.getElementById('my-input-id').disabled = false;

If you're using jQuery, the equivalent would be:

如果您使用 jQuery,则等效项为:

$('#my-input-id').prop('disabled', false);

For several input fields, you may access them by class instead:

对于多个输入字段,您可以改为按类访问它们:

var inputs = document.getElementsByClassName('my-input-class');
for(var i = 0; i < inputs.length; i++) {
    inputs[i].disabled = false;
}

Where documentcould be replaced with a form, for instance, to find only the elements inside that form. You could also use getElementsByTagName('input')to get all input elements. In your foriteration, you'd then have to check that inputs[i].type == 'text'.

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

回答by Dragos Rusu

Why not just remove that attribute?

为什么不删除该属性?

  1. vanilla JS: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')
  1. 香草JS: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')

回答by Henry Hedden

To set the disabledto false using the nameproperty of the input:

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

document.myForm.myInputName.disabled = false;

回答by crisc82

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>

code of the previous answers don't seem to work in inline mode, but there is a workaround: method 3.

先前答案的代码似乎无法在内联模式下工作,但有一个解决方法:方法 3。

see demo https://jsfiddle.net/eliz82/xqzccdfg/

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