检测自动填充并停止对焦

时间:2018-01-23 15:33:45

标签: javascript jquery

我有一个在一个非常图形化的网络应用程序中构建的表单,这些字段跨越多个屏幕。

当用户在其浏览器中使用自动填充功能(即chrome以取消开发人员停止自动填充的功能)时,自动填充焦点会自动填充。在最后编辑的字段上。

这个问题是因为我们在每个屏幕上有一些输入字段,当自动填充从名称字段开始填充信息然后自动填充到更远的地址并跳过许多字段并筛选和打破应用程序的其他一些视觉方面。

在闲置世界中,自动完成功能设置为关闭就足够了,但由于Chrome不会发生这种情况。所以我现在需要的是一种可行的方法来阻止焦点将屏幕空间转移到最后一个字段。

但我不确定如何检测自动填充事件,如果有一个或如何使用JS或jQuery粗略检测它。

2 个答案:

答案 0 :(得分:0)

是否存在导致问题的HTML结构或Javascript行为的具体内容?我在JSBin中创建了一个测试页面,试图分析最后一个自动填充字段是否抓住了焦点,而在Opera中测试时(我的公司管理员锁定了我的Chrome自动填充设置),我没有滚动到那个领域。尝试一下,也许可以发布一些HTML结构供我们试用:

http://jsbin.com/qomege/edit?html,output

<form>
  <div>name: <input type="text" name="name" /></div>
  <div>email: <input type="text" name="email" /></div>
  <div>address: <input type="text" name="address" /></div>
  <div>city: <input type="text" name="city" /></div>
  <div>state: <input type="text" name="state" /></div>
  <div style="padding-top:640px;">zip:<input type="text" name="zip" /></div>
  <div><input type="submit" /></div>
</form>

答案 1 :(得分:0)

怎么样:

setTimeout(focusTheFirstInput, 0);

据我所知,如果您更改输入的名称和ID,则Chrome无法找到要填充的正确输入,您也可以尝试删除输入的“自动完成”属性有一个。