javascript - 单击时 HTML 输入字段未获得焦点

标签 javascript html css

我有一个问题,我无法弄清楚到底是什么导致了这种行为。我无法访问我的 HTML 表单上的输入字段和 textarea

不幸的是,JS、HTML 和 CSS 非常大,所以我不能在这里全部发布。

任何人都可以告诉我在调试这种奇怪的行为时要寻找什么吗?

更新

如果我将光标移到 input 字段上,我可以看到文本光标,但是当我单击它时,该字段不会获得焦点。我可以通过按 Tab 键访问该字段,如果我右键单击它然后单击该字段,我也会获得它的焦点。

...不,它们没有 disabledreadonly 属性 ;-)

最佳答案

when i click it the field does not get the focus. i can access the field via pressing the "tab-key"

听起来您已经取消了 mousedown 事件的默认操作。在您的 HTML 和 JS 中搜索 onmousedown 处理程序并查找一行内容。

return false;

这条线可能会阻止你通过点击来聚焦。


回复:您的评论,我假设您无法编辑添加此处理程序的代码?如果可以,最简单的解决方案就是删除 return false; 语句。

is there a way to just add functionality to the event-trigger by not overwriting it?

这取决于处理程序的附加方式。如果它是使用传统注册方法附加的,例如element.onmousedown,然后你可以为它创建一个包装器:

var oldFunc = element.onmousedown;
element.onmousedown = function (evt) {
    oldFunc.call(this, evt || window.event);
}

因为这个“包装器”不返回false,所以它不会取消元素的默认操作(聚焦)。如果您的事件是使用高级注册方法附加的,例如 addEventListenerattachEvent,那么您只能使用函数名称/引用删除事件处理程序,然后使用包装的重新附加它功能和上面类似。如果它是添加的匿名函数并且您无法获得对它的引用,那么唯一的解决方案是附加另一个事件处理程序并使用 element.focus() 方法手动聚焦元素。

关于javascript - 单击时 HTML 输入字段未获得焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3724749/

相关文章:

css - 如果缺少所需的 css,则加载备用 css

javascript - 禁用 Javascript 时的 SEO 重定向

javascript - Bootstrap 标签输入事件示例

javascript - pdfmake - 在 ANGULAR 4 中将 SVG 转换为 image64

jquery - 如何隐藏特定的 div 标签

Php 包括烦人的上边距

javascript - 在 Bootstrap 弹出窗口中包含表单?

javascript - 隐藏密码文本框并提交

html - 如何在重组文本中注释字符串?

css 和 div - parent 对 child 的属性