如何在禁用的输入字段上捕获事件
禁用的输入字段通常不处理事件侦听器。如果您需要根据用户与此类输入的交互启用功能,这可能是一个挑战。
解决方法:
要解决此问题,您可以设置事件处理程序在容器元素上,因为浏览器经常将源自禁用元素的事件沿 DOM 树传播。但是,某些浏览器(例如 Firefox)不会以这种方式运行。
跨浏览器解决方案:
为了实现完整的跨浏览器兼容性,您可以放置一个透明的元素,例如
<div>,位于禁用的输入字段前面。此元素将捕获单击事件:<div>
$("div > div").click(function (evt) { $(this).hide().prev("input[disabled]").prop("disabled", false).focus(); });
使用此解决方法,透明叠加层上的单击事件将启用禁用的输入字段并为其提供焦点。
演示:
您可以在以下位置查看此解决方案的实际效果: http://jsfiddle.net/RXqAm/170/(使用 jQuery 1.7 和 prop 而不是 attr)。
以上是如何捕获禁用输入字段上的事件?的详细内容。更多信息请关注PHP中文网其他相关文章!