IE11 Autocomplete无补全建议求助:表单配置与提交方式排查
解决IE11表单自动补全失效的问题
我之前也碰到过IE11这种头疼的自动补全问题,结合你的情况,给你几个针对性的排查和解决方向:
检查表单提交的触发逻辑
IE11对非原生提交的场景兼容性很差,你用的是调用submitFunc的按钮,一定要确保函数内部是触发了表单的原生submit事件,而不是直接用AJAX或跳转绕开原生流程。比如:function submitFunc() { // 先触发表单原生提交,让IE11记录数据 document.getElementById('your-form-id').submit(); // 后续逻辑可以放到表单的onsubmit事件里处理 }另外,务必把触发按钮放在
<form>标签内部,IE11对外部按钮触发的提交经常不记录表单数据。修正autocomplete属性的取值
IE11只认最基础的标准autocomplete值,多余的前缀反而会干扰它识别。建议把属性改成:- 姓名字段:
autocomplete="name"(不要混用given-name,IE11无法识别复合取值) - 地址字段:
autocomplete="street-address"(去掉shipping前缀) - 电话字段:
autocomplete="tel"(去掉home前缀) - 邮箱字段:
autocomplete="email"(去掉home前缀)
- 姓名字段:
匹配字段的name属性
IE11的自动补全会同时参考name属性和autocomplete属性,尽量让两者取值一致:- 姓名字段
name="name" - 地址字段
name="street-address" - 电话字段
name="tel" - 邮箱字段
name="email"
- 姓名字段
清除IE11的自动补全缓存
有时候IE11的缓存会出现异常,即使多次提交也不记录数据。可以尝试:
打开IE11「Internet选项」→「内容」→「自动完成」→「设置」→「删除自动完成历史记录」,之后重新填写提交几次表单,看看是否触发自动补全。排查是否存在禁用自动补全的隐藏字段
检查表单内有没有类似<input type="hidden" autocomplete="off">的元素,IE11会因为这类字段直接禁用整个表单的自动补全功能。
内容的提问来源于stack exchange,提问作者Krishan Mittal
相关产品推荐
相关产品推荐

