添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
暴走的电池  ·  C#开发BIMFACE系列53 ...·  4 月前    · 
爱喝酒的手链  ·  New-WinUserLanguageLis ...·  5 月前    · 
朝气蓬勃的紫菜  ·  SuperMap iObjects ...·  1 年前    · 

:针对的是chrome,IE 对autocomlete属性不生效

在项目中,时常需要进行表单提交,当我们填完表单后,在没有点击保存按钮或者提交按钮时,点了以下logo,页面跳回了首页,这时,我们通过浏览器的前进后退按钮,可以返回到之前填写表单页面,这时,会将之前选中或者填写的值显示出来,但我们的页面出现了值赋值错乱的问题,A的值赋给了B这种现象。这是什么原因造成的?

经过一番定位,我们找到了原因。浏览器在使用前进后退功能时,之所以会记住之前的值,是因为浏览器对 input autocomplete 属性默认是开启的,所以会记住,当我们回退到之前的页面时, autocomplete 记住的值会进行回填,回填的依据就是input标签上的name属性,会根据 name 属性性回显之前填的值,如果没有配置 name 属性,则会出现赋值错乱的问题,有的值会赋值给前一个字段。

  • 为了给正确字段赋值正确,我们需要给 input 属性配置 name 属性
  • 为不显示之前的值,我们可以将 autocomplete 设置为 off 代码如下:
  •  <input type='text' name='userName' id='userName' autocomplete='off'/>
    

    IE 对autocomplete='off' 不生效,网上有很多方案,但对浏览器的前进后退操作无效,后面发现 inputtype 类型改成button, IE 就不会记录之前的value值,后退操作获取到的value,所以我们将隐藏的input标签的type 改成了button 来解决我们兼容IE的问题

     <input type='button' name='userName' id='userName' autocomplete='off'/>