iOS 16中的Safari自动对焦表单元素。

7

我注意到新的iOS 16.0中,如果以下条件成立,Safari会自动聚焦在输入元素上:

  1. type为number或text
  2. pattern=\d*
  3. 包含元素的margin-top为48px(我没有测试确切的截止数值)

测试页面:https://www.autoledky.sk/ios.php

autocomplete=off和autofocus=false并不能改变任何东西。iOS 16之前没有这样的问题。该问题已在两个不同的iOS 16手机上确认。

这导致自动滚动主页,放大并打开键盘,这是不可接受的。 如何解决问题而不明显地“删除输入/模式”?

2个回答

3

我无法验证任何边距标准的必要性。我们的情况与此处列出的边距不符。但是,通过完全删除pattern属性,因为它已经是一个特定的字段类型,在input[type="number"]字段上,我能够解决我们的问题。这样做后,在iOS16.0的Safari中,我们不再看到自动聚焦。

在找到这个主题并确定可能是一个错误之前,我尝试了很多事情,包括更改tabindex、禁用javascript、逐个查看我们使用的每个插件。很高兴找到有人遇到了同样的问题,并且能够进一步缩小问题范围。谢谢!


我很高兴不是唯一一个遇到这个问题的人。如果我删除margin-top,第一次加载时该错误不会出现。但是,例如,如果我向下滚动并导航到另一页并返回或按重新加载,则该错误再次出现-显然与输入处于浏览器某种不可见区域有关,这导致打开键盘。我还暂时删除了模式(在iOS上会导致显示完整键盘而不是数字键盘)。 - Ellessar
哦,我甚至没有测试键盘的类型。这很烦人,但希望这不是我们必须长期忍受的错误。 - Bryan Corey

0
仅做出贡献,我有同样的问题,而且问题是由于一个位于form标签之外的input元素引起的。
当将input包装在form元素中时,问题消失了;希望这能帮助其他人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接