900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 怎么禁止自动填充浏览器记住的密码?

怎么禁止自动填充浏览器记住的密码?

时间:2020-05-24 14:32:02

相关推荐

怎么禁止自动填充浏览器记住的密码?

浏览器保存密码是根据input="password"来判断的,所有我们只要保证浏览器在dom结构中识别不到密码框即可。

方案一:

在提交前清空输入框密码,并修改密码框为文本框。

(1)我的提交为发生Ajax提交,可根据自己实际情况进行调整

(2)表单方式 ,清空密码之后,将值保存在一个隐藏域中,再提交表单

<td align="left"><lable style="font-weight: bold; color: #4175a4;">密&nbsp;&nbsp;&nbsp;码:</lable></td><td><input id="hiddenInput" type="text" style="display: none"><input type="password" style="width: 250px" class="form-control" id="password" name="password" placeholder="请输入密码" autocomplete="false" required></td>$("#loginbtn").click(function() {var username= $("#username").val();var password= $("#password").val();$("#hiddenInput").val(password);$("#password").val("");if(username == null || username == ""){toastr.info("请输入用户名", "提示信息");return;}if(username == null || username == ""){toastr.info("请输入密码", "提示信息");return;}console.log(document.getElementById('hiddenInput').value);$.ajax({type: "POST",url: '/public/login',contentType: 'application/json',async: false,data: JSON.stringify({"username": username, "password": $("#hiddenInput").val()}),dataType: "json",success: function (data) {if (data.status == 200) {window.location.href = "/public/index"} else {$("#hiddenInput").val();$("#password").val("******");toastr.error(data.message, "错误信息");}},error: function (data) {$("#hiddenInput").val();$("#password").val("******");toastr.error("连接服务器失败", "错误信息");}});})

方案二:(推荐使用,可防止浏览器上手动强制保存账号密码)

搞一个文本输入框,一个隐藏域,在密码框失去鼠标焦点的时候,将文本框的值保存到隐藏域中,并将文本框的值替换为同等长度的* 号

浏览器强制保存

<td align="left"><lable style="font-weight: bold; color: #4175a4;">密&nbsp;&nbsp;&nbsp;码:</lable></td><td><input id="hiddenInput" type="text" style="display: none"><input type="password" oninput="myinput(this)" style="width: 250px" class="form-control" id="password" name="password" placeholder="请输入密码" autocomplete="false" required></td>let trueValue = [];//保存真实数据的数组let beforeLength = 0;//隐藏框value的长度function myinput(self) {let nowLength = self.value.length;// 变化后的长度if(nowLength > beforeLength){//长度增加时trueValue.push(self.value[nowLength-1]);++beforeLength;}else{//长度减少时trueValue.pop();--beforeLength;}document.getElementById('hiddenInput').value = trueValue.join('');//数组转化为字符串,并填充入隐藏框let nowValue = '';//转换为圆点for(let i = 0; i < nowLength; ++i){nowValue += '•';}self.value = nowValue;}$("#loginbtn").click(function() {var username= $("#username").val();var password= $("#hiddenInput").val();if(username == null || username == ""){toastr.info("请输入用户名", "提示信息");return;}if(username == null || username == ""){toastr.info("请输入密码", "提示信息");return;}console.log(document.getElementById('hiddenInput').value);$.ajax({type: "POST",url: '/public/login',contentType: 'application/json',async: false,data: JSON.stringify({"username": username, "password": password}),dataType: "json",success: function (data) {if (data.status == 200) {window.location.href = "/public/index"} else {$("#hiddenInput").val();toastr.error(data.message, "错误信息");}},error: function (data) {$("#hiddenInput").val();toastr.error("连接服务器失败", "错误信息");}});})

方案三:

搞两个密码框,一个默认设置值为******,默认隐藏,另一个输入完提交的时候获取值后remove 掉,

并把之前隐藏的显示出来, 失败情况下,重新构建该输入框

<td align="left"><lable style="font-weight: bold; color: #4175a4;">密&nbsp;&nbsp;&nbsp;码:</lable></td><td id="pw-td"><input type="password" style="width: 250px;display: none" class="form-control" value="*******" id="pd" name="pd" placeholder="请输入密码" autocomplete="false" required> <input type="password" style="width: 250px" class="form-control" id="ipd" name="ipd" placeholder="请输入密码" autocomplete="false" required></td>$("#loginbtn").click(function() {var username= $("#username").val();var password= $("#ipd").val();if(username == null || username == ""){toastr.info("请输入用户名", "提示信息");return;}if(username == null || username == ""){toastr.info("请输入密码", "提示信息");return;}$("#ipd").remove();$("#pd").show();$.ajax({type: "POST",url: '/public/login',contentType: 'application/json',async: false,data: JSON.stringify({"username": username, "password": password}),dataType: "json",success: function (data) {if (data.status == 200) {window.location.href = "/public/index"} else {$("#pw-td").append("<input type=\"password\" style=\"width: 250px\" class=\"form-control\" id=\"ipd\" name=\"ipd\" placeholder=\"请输入密码\" autocomplete=\"false\" required>");$("#pd").hide();toastr.error(data.message, "错误信息");}},error: function (data) {$("#pd").hide();$("#pw-td").append("<input type=\"password\" style=\"width: 250px\" class=\"form-control\" id=\"ipd\" name=\"ipd\" placeholder=\"请输入密码\" autocomplete=\"false\" required>");toastr.error("连接服务器失败", "错误信息");}});})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。