我有一个问题,我不知道到底是什么导致了这种行为.我无法访问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相关问答推荐

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

如何在react 路由中设置活动类?

如何为 MUI Slider 字段中 markLabel 的第一个和最后一个实例提供边距?

我如何使用 CSS 在我的应用程序中每隔 3 位用逗号分隔数字?

带插值的 Sass 数学函数

带有 flex 的 CSS 空 div 以扩展并保持纵横比

每当键盘在react native 中打开时,如何使用 KeyboardAvoidingView 删除图像?

如何让我的 CSS 代码响应小屏幕?

不能在带有 SCSS 的过滤器灰度内使用 CSS 变量

Tailwind:如何设置网格的自动填充?

Flexbox 子高度它的内容

基于类的 CSS Select 器

如何使半圆的边框淡出?

css3比例周围的空白

我应该避免使用text-align: justify;吗?

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

如何在渲染之前获取react 组件的大小(高度/宽度)?

Flexbox 列自底对齐

如何在 Firefox 和 Opera 中zoom HTML 元素?

打印html时在页面上打印页码