我无法在我的HTML表单上访问我的输入字段和textarea
。
JS,HTML和CSS非常大,所以我不能在这里发布。
有人可以告诉我在调试时要查找什么吗?
如果将光标移到input
字段上,我可以看到文本光标,但是当我点击它时,字段不会获得焦点。我可以通过按键访问该字段Tab,如果我右键单击它,然后单击该字段,我也会获得焦点。他们没有disabled
或readonly
属性
发布于 2018-04-04 09:08:33
当我点击它时,字段没有得到重点。我可以通过按“tab键”访问该字段
这听起来像已经取消了mousedown事件的默认操作。通过你的HTML和JS搜索onmousedown处理程序,然后查找一行。
return false;
这条线可能会阻止你通过单击进行聚焦。
我假设你不能编辑添加这个处理程序的代码?如果可以的话,最简单的解决方案就是删除return false;
语句。
有没有办法通过不覆盖它来为事件触发器添加功能?
这取决于处理程序是如何连接的。如果使用传统的注册方法(例如element.onmousedown)附加它,则可以为其创建一个包装:
var oldFunc = element.onmousedown;
element.onmousedown = function (evt) {
oldFunc.call(this, evt || window.event);
}
由于此“wrapper”不会返回false,因此它不会取消该元素的默认操作(聚焦)。如果使用高级注册方法(例如addEventListener或attachEvent)附加事件,则只能使用函数名称/引用删除事件处理程序,并使用类似于上面的包装函数重新附加它。如果它是一个添加的匿名函数,并且无法获得对它的引用,那么唯一的解决方案是使用element.focus()方法手动添加另一个事件处理函数并手动聚焦元素。
发布于 2018-04-04 09:27:28
我也有这个问题。我在包含我的输入字段的父DIV上使用了jQuery UI 的disableSelection()
方法。在Chrome中,输入字段不受影响,但在Firefox中,输入(以及textareas也没有)专注于单击。这些输入上的点击事件起作用。
解决方法是删除父DIV 的disableSelection()
方法。
https://stackoverflow.com/questions/-100007949
复制相似问题