当我单击它时,该字段没有获得焦点.我可以通过按"Tab键"进入该字段
听起来您已经取消了mousedown活动的默认操作.在HTML和JS中搜索onmousedown个处理程序,并查找一行代码.
return false;
这条线可能会阻止你通过点击来聚焦.
回复:你的 comments ,我假设你不能编辑添加这个处理程序的代码?如果可以,最简单的解决方案就是删除return false;
语句.
有没有一种方法可以在不覆盖事件触发器的情况下只向其添加功能?
这取决于处理程序是如何连接的.如果它是使用传统的注册方法(例如element.onmousedown)附加的,那么您可以为它创建一个包装器:
var oldFunc = element.onmousedown;
element.onmousedown = function (evt) {
oldFunc.call(this, evt || window.event);
}
因为这个"包装器"不返回false,所以它不会取消元素的默认操作(聚焦).如果您的事件是使用高级注册方法(如addEventListener或attachEvent)附加的,则只能使用函数名/引用删除事件处理程序,然后使用类似于上面的包装函数重新附加它.如果它是一个添加的匿名函数,并且您无法获得对它的引用,那么唯一的解决方案将是附加另一个事件处理程序,并使用element.focus()方法手动聚焦该元素.