1

我正在开发一个移动/网络应用程序。当我在移动浏览器(如 iPhone 的 safari 甚至 chrome 移动应用程序)中查看表单域时,除非我按下另一个表单元素或键盘上的“完成”,否则我不会失去对表单域的关注。

我什至将我的代码完全剥离为:

<!DOCTYPE html>
<html>
    <head>
       <title>Test</title>
    </head>
    <body>
        <form>
             <input type="text"/>
        </form>
    </body>
</html>

而且我仍然不能通过按别处而失去文本字段的焦点(在移动浏览器中)!

有人有想法么?

4

2 回答 2

2

尝试:

document.body.addEventListener("click", function(evt) {
  var nodeName = evt.target.nodeName.toLowerCase();
  if (nodeName !== "input" && nodeName !== "textarea" && nodeName !== "select") {
    document.activeElement.blur();
  }
});
于 2012-11-14T11:59:56.913 回答
2

我有同样的问题,我发现这个 hack 有效

document.body.firstElementChild.tabIndex = 1

这使得正文中的第一个元素可聚焦,因此当您单击“外部”输入时,它会失去焦点。同时,您在该焦点元素上看不到任何视觉故障,因为没有定义样式(除非您的第一个 body 子元素不是 div)

于 2018-03-16T12:39:45.000 回答