JavaScript输入禁用事件

显然一个被禁用的没有被任何事件处理

有没有解决此问题的方法?

<input type="text" disabled="disabled" name="test" value="test" />

$(':input').click(function () {

$(this).removeAttr('disabled');

})

在这里,我需要单击输入以启用它。但是,如果我不激活它,则不应发布输入。

回答:

禁用的元素不会触发鼠标事件。大多数浏览器会将事件从禁用元素传播到DOM树,因此事件处理程序可以放在容器元素上。但是,Firefox不会表现出这种行为,当您单击禁用的元素时,它根本不执行任何操作。

我想不到更好的解决方案,但是,为了完全兼容跨浏览器,您可以在禁用的输入之前放置一个元素,然后单击该元素。这是我的意思的示例:

<div style="display:inline-block; position:relative;">

<input type="text" disabled />

<div style="position:absolute; left:0; right:0; top:0; bottom:0;"></div>

</div>​

jq:

$("div > div").click(function (evt) {

$(this).hide().prev("input[disabled]").prop("disabled", false).focus();

});​

以上是 JavaScript输入禁用事件 的全部内容, 来源链接: utcz.com/qa/402050.html

回到顶部