javascript从html输入中删除“ disabled”属性


Answers:


201

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


1
是的,它可以工作,但是我需要做很多事情来做同样的事情。有什么捷径吗?这是可能的('id1','id2','id3')吗?
Jam Ville 2012年

1
是的,它有效!谢谢。顺便说一句,在geElementsBy上有一个拼写错误。我以为那是行不通的:)
Jam Ville

34

为什么不删除该属性呢?

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

1
jQuery("#success").removeAttr("disabled");-这对我有用,谢谢!
aftamat4ik '16

普通js,IE中不支持removeAttribute。
MarCrazyness

IE11中removeAttribute似乎支持@MarCrazyness 。它被标记为unknown可以使用,因此我刚刚打开IE并检查了它是否有效。是的
阿图尔

2

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

document.myForm.myInputName.disabled = false;

1

最好的答案就是removeAttribute

element.removeAttribute("disabled");

在firefox中,就像nowadys(2020)一样,disabled属性是活动的,但是将其设置为false。firefox只是在寻找属性本身。因此最好的解决方案是为Firefox添加或删除它,这当然适用于所有主要浏览器。
拉斐尔·迈耶

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/


这两个不适合我。method 1 <input type="text" onclick="this.disabled=false;" disabled> <hr> method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled>
安巴尔·玛尼

1
您之所以投票,是因为您不正确地知道如何阅读答案?方法1来自David Hedlund响应,方法2来自Dragos Rusu响应。禁用某个元素后,该特定元素上的“ onclick”在串联模式下将不再起作用(我没有测试外部js模式)。唯一的方法是使用readonly属性和一些CSS模拟“禁用”是一种解决方法。或制作一个外部“ onclick”元素(如按钮),将使用方法1和2启用输入(当然可以使用)。
crisc82
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.