如何更改输入标记中的禁用属性

时间:2014-02-21 14:32:18

标签: javascript html css

我想在双击时使用javascript将已禁用属性从已禁用更改为已启用输入标记。

这可能吗?

感谢。

3 个答案:

答案 0 :(得分:1)

.disabled

document.getElementById("elementID").disabled = false;

.removeAttr

document.getElementById("elementID").removeAttr("disabled");

小提琴:http://jsfiddle.net/CGy6j/

由于disabled元素不会注册点击事件,请将input包裹在span中并对其执行逻辑:

<span id="wrapper"><input type="text" id="testInput"  /></span>

var input = document.getElementById("testInput"),
    fake = document.getElementById("wrapper");

fake.ondblclick = function() {
    input.disabled = !input.disabled;
}

答案 1 :(得分:1)

现在有趣的是,禁用的元素不会触发鼠标事件,因此您无法向元素添加事件侦听器。您需要侦听DOM链上的双击事件。

<强> HTML:

<form id="frm">
    <input type="text" id="foo" disabled="disabled" />
</form>

<强> JavaScript的:

document.getElementById("frm").ondblclick = function (evt) {   //there are better ways of adding events
    evt = evt || window.event;
    var target = evt.target || evt.srcElement;  //get what was clicked on
    if (target.disabled) {  //see if it was disabled
         target.disabled = false;   
    }
};

JSFiddle

现在问题不是所有的浏览器都会为残疾元素传播事件!

答案 2 :(得分:0)

好的,所以使用tymeJVs和这个事件“ondblclick”一起回答你会使用这样的东西;

<script>
   function myFunction(){
      document.getElementById("inField").removeAttribute('disabled');
   }
</script>

<div ondblclick="myFunction();"><input id="inField" disabled=disabled/></div>