10

我有一个禁用了一些输入的表单。我希望双击时启用这些输入。不幸的是,JS 事件似乎不会在禁用输入时触发。

<input type="text" value="asdf" disabled="disabled" ondblclick="this.disabled=false;">​

有没有办法绕过这个限制?

还是我只需要将任何受影响的输入包装在一个跨度中以容纳该事件?

http://jsfiddle.net/vhktx/

4

4 回答 4

20

ondblclick不会在disabled元素上触发,您应该将其标记为readonly

<input type="text" value="asdf" readonly="true" ondblclick="this.readOnly='';">

http://jsfiddle.net/vhktx/4/

于 2012-07-03T23:54:59.247 回答
4

您必须将元素包装在容器中,因为该事件不会在禁用的元素上触发。

jsFiddle

<div ondblclick="document.getElementById('test').disabled=false;">
    <input type="text" id="test" value="asdf" disabled="disabled"></div>
于 2012-07-03T23:50:15.567 回答
1

标记为正确的答案不会将输入恢复为需要再次双击以再次编辑。

为此添加此 onchange 函数:onchange="this.readOnly='true';"

整个事情: onchange="this.readOnly='true';" readonly="true" ondblclick="this.readOnly='';"

于 2021-08-21T13:53:45.627 回答
-1

这会做!对我有用,因为“禁用”和“只读”看起来几乎相同(至少在引导程序中)。内联脚本不适用于禁用的属性。

<input type="text" ondblclick="this.readOnly=false;" readonly/>
于 2021-05-01T06:02:48.570 回答