如何在点击时启用输入框?

时间:2014-01-22 18:53:25

标签: javascript

我有以下输入:

<input type="text" value="John Smith" onClick="editUserName()" id="userNameInput" disabled>

它假设在用户点击它时激活,以便进行编辑:

var userNameInput = document.getElementById("userNameInput");
function editUserName () {
    userNameInput.disabled = false;
}

我尝试了disableddisabled="disabled",似乎没有任何影响。 这有什么问题?

4 个答案:

答案 0 :(得分:2)

问题是它被禁用

尝试onmouseover

答案 1 :(得分:0)

我认为您也可以删除该属性:

userNameInput.removeAttribute("disabled");

我相信当你将disabled属性设置为'disabled'时,它会将其禁用。

答案 2 :(得分:0)

问题在于,disabled属性(至少在某些浏览器中)会阻止任何用户与该元素的交互。这意味着clickmouseover事件都不会在这些浏览器中注册。您可以采取的措施是创建自己的类,模仿disabled样式,以便仍然触发事件。

我已经做了一个 demo 的例子。

答案 3 :(得分:0)

您可以将输入元素放在某个div中并捕获事件并删除已禁用的attribite。

<div onClick="editUserName()">
 <input type="text" value="John Smith" id="userNameInput" disabled>
</div>

var userNameInput = document.getElementById("userNameInput");
function editUserName () {
   userNameInput.removeAttribute("disabled");
}

演示:http://jsfiddle.net/27Syr/644/