禁止浏览器对表单自动填充的几种方法
当用户在进行登录等操作提交表单后,浏览器会提示是否允许浏览器记住密码。记住用户名密码在一定程度上会给用户体验带来好处,然而,也会带来一定坏得影响,本文章向大家介绍禁止浏览器对表单自动填充的几种方法,需要的朋友可以参考一下。
浏览器会将带有密码输入域的表单进行自动填充,在登录界面给用户带来很大的便利。但是,在非登录表单存在密码输入域时,浏览器也会自动填充,从而会带来一定坏得影响。禁止浏览器对表单自动填充的四种方法如下:
第一种方法:将type=“password” 改为 type="text" ,然后再在必要的时候将其改回password
猜想,浏览器自动填充识别的是 type="password" 然后将该input自动填入密码
那么,我们考虑将type=“password” 改为 type="text" ,然后再在必要的时候将其改回password
这个必要的时候我们选择在当密码的input获得焦点时,即在onFocus时改变type="password",代码如下:
$("#psw").focus(function(event) {
$(this).attr('type','password');
});
以上代码不兼容ie8以下,兼容代码如下:
var isLTIE9 = function(){
var bObj = document.createElement('b');
bObj.innerHTML = '<!--[if lt IE 9]><i></i><![endif]-->';
return bObj.getElementsByTagName('i').length === 1;
}
if(!isLTIE9()) {
$("#psw").focus(function(event) {
$(this).attr('type','password');
});
}else{
var pswInput = document.getElementById("psw");
var pswInput2 = pswInput.cloneNode(false);
pswInput2.type='password';
pswInput.parentNode.replaceChild(pswInput2,pswInput);
}
第二种方法:在用户名和密码之间加上一个隐藏的文本框
<input type="text" name="name">
<input type="hidden">
<input type="password" name="pass">
第三种方法:使用假的 input 让浏览器去填充
在页面 <body>
后加入:
<!-- fake fields are a workaround for chrome autofill getting the wrong fields -->
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
这个方案原理是让浏览器去填充用户实际上看不到的 input。虽然看上去代码比较 low,但是很实用
第四种方法:使用 autocomplete 属性
在不需要自动填充的 input 上设置 autocomplete
属性:
<pre name="code" class="html"><input type="text" name="name" autocomplete="off">
<input type="password" name="pass" autocomplete="off">
这个方案只对chrome浏览器生效。
- 2017-11-17js如何阻止表单提交
- 2017-11-06禁用Chrome浏览器自动填充表单form的方法
- 2017-11-03javascript防止用户按Enter键提交表单
- 2017-11-03解决html表单嵌套的方法
- 2017-10-25html表单提交array数组数据实例
- 2016-10-31php使用令牌Token防止表单重复提交
- 2016-07-22php将form提交的数据存储到mysql中代码
- 2016-07-18php实现一个简单的用户反馈提交表单
- 2016-07-06php实例之表单提交并将数据保存到mysql数据库
- 2016-06-19php表单提交及数据处理的实例
- 2016-06-19php 实现表单在指定时间内提交有效
- 2016-06-18php 表单提交到本页的处理方法
- 2016-06-18php 表单令牌防止刷新表单重复提交的两种方法
- 2016-06-18php 分享服务器端表单验证实例
- 2016-06-18php 验证表单元素是否为空的方法
- 2016-06-17php 表单select元素多选实例
- 2016-06-17php 表单提交之select下拉列表的使用方法
- 2016-06-17php 表单提交实例之radio单选框
- 2016-06-16如何将一个表单提交到多个页面
- 2016-06-16php 一个页面处理多个表单
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例