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

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

有人能告诉我在调试这个奇怪的行为时应该注意什么吗?

UPDATE

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

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

推荐答案

当我单击它时,该字段没有获得焦点.我可以通过按"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,所以它不会取消元素的默认操作(聚焦).如果您的事件是使用高级注册方法(如addEventListenerattachEvent)附加的,则只能使用函数名/引用删除事件处理程序,然后使用类似于上面的包装函数重新附加它.如果它是一个添加的匿名函数,并且您无法获得对它的引用,那么唯一的解决方案将是附加另一个事件处理程序,并使用element.focus()方法手动聚焦该元素.

Css相关问答推荐

如何使搜索框扩展并溢出其他内容

转换间隙值时基于百分比的弹性元素&跳转

Vue3日期 Select 器:作用域样式不起作用

R SHINY:FILL CONTAINER=TRUE时调整DT数据表高度,

如何使用DirectusImage标签作为背景?

如何在Bootstrap 5上使用移动设备居中内容?

Nextjs Tailwind Marquee 组件溢出

flex 容器中的两个滚动块

React Typescript 中的自动 typewriter 效果

如何仅包装左侧内容

子组件的css会影响整个页面

带有图像的 CSS 网格在 Firefox 中表现不同

CSS nth-child 表示大于和小于

禁用输入的 CSS Select 器 type="submit"

边界半径应该剪辑内容吗?

bootstrap 程序中有 7 个相等的列

使用 CSS go 除图像之间的空间

Unicode 通过 CSS :before

CSS停止图像下的文本换行

如何使用 CSS 消除元素的偏移量?