2012-07-30 44 views
45

如何使用javascript将“禁用”属性移除到html输入?javascript将“disabled”属性移除为html输入

<input id=edit disabled> 

at onclick我希望我的输入标签不包含“disabled”属性。

+0

的可能重复[如何禁用为ubmit按钮时,复选框没有选中?](http://stackoverflow.com/questions/5458531/how-do-i-disable-a-submit-button-when-checkbox-is-uncheck)重复,因为该问题解释如何切换,因此如何在此处启用*和*禁用。 – 2014-07-06 11:13:10

回答

108

设置元素的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')? – 2012-07-30 11:03:25

+0

@IvorySantos:好的,看我的编辑。 – 2012-07-30 11:05:35

+1

是的,它的工作原理!谢谢。顺便说一句,geElementsBy有一个输入错误。我认为这是行不通的:) – 2012-07-30 11:18:01

2

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

document.myForm.myInputName.disabled = false; 
13

为什么不直接删除属性?

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

'jQuery(“#success”)。removeAttr(“disabled”);' - 这对我有用,谢谢! – aftamat4ik 2016-04-16 17:26:41

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/

+0

这两个不适合我。 ''方法1


方法2 '' – 2017-08-02 10:53:56

+1

你低估了这一点,因为你不知道如何阅读答案?方法1来自David Hedlund的回应,方法2来自Dragos Rusu回应。一旦某个元素被禁用,该特定元素上的“onclick”将不再以内联模式工作(我没有测试过外部js模式)。唯一的方法是模拟“禁用”是使用只读属性和一些CSS的一个小解决方法。或者使一个外部的“onclick”元素像一个按钮,使用方法1和2来启用输入(这当然会起作用)。 – eliz82 2017-09-27 06:34:57

相关问题