沉浸式阅读
Beta
原创

开发中怎么禁止浏览器在记住密码后回显在密码框的问题

     订阅 web前端开发     2023-05-28     704    1    0    1    2023-05-28
学习要点:其实就是告诉浏览器不写入readonly ,通过JS用setTimeout延迟时间,让其框取消readonly属性,使密码框可以正常写入。

一、本文解决的问题:

在浏览器弹框提示保存密码后,会员修改资料时保存的密码回显在密码框中,测试浏览器:IE,谷歌,火狐,360极速


二、现象及问题

1、登录后弹框提示保存密码:(谷歌浏览器示例)


2、点击保存,用户在修改资料时,保存的密码就会被回显到新登录密码:(这个是浏览器对 type="password" 属性的一种自动回显的正常逻辑,这里可以百度去了解一下。)

undefined

到了这里,很多不明白浏览器逻辑的用户误认为要修改密码,导致修改了无数次的密码,这里还是回显......


三、解决方法

找到会员中心的这个模板文件member/edit.htm

3.1、搜 新登录密码 ,在原属性代码中加上 readonly ,效果如图


3.2、再搜 现有支付密码

如图

这里需要新加代码,让浏览器的回显失效,就是先告诉浏览器不写入 readonly ,延迟时间通过JS取消 readonly ,让其框取消readonly属性,使密码框可以写入

<script type="text/javascript">
	setTimeout(function remve(){
		var pass=document.getElementById("password");
		pass.removeAttribute("readonly");
	},2000);
</script>


添加后的效果


刷新页面,就会是这样的效果了



四:如果上述教程还是有提示,就直接将整段代码换掉。

如图:原来默认的8.0的模板


9.0的模板默认如图


换成后的效果


整段代码如下(适用于8.0和9.0,7.0没有测试)

<tbody id="Tabs1" style="display:none;">
<tr>
<td class="tl">新登录密码</td>
<td class="tr"><input type="password" size="20" name="post[password]" id="password" autocomplete="new-password" readonly/>   <span class="f_grey">如不更改密码,请留空</span> <span id="dpassword" class="f_red"></span></td>
</tr>
<tr>
<td class="tl">重复登录密码</td>
<td class="tr"><input type="password" size="20" name="post[cpassword]" id="cpassword" autocomplete="new-password"/>   <span id="dcpassword" class="f_red"></span></td>
</tr>
<tr>
<td class="tl">现有登录密码</td>
<td class="tr f_red"><input type="password" size="20" name="post[oldpassword]" id="oldpassword" autocomplete="new-password"/>   如需更改密码,需输入现有密码  <a href="logout.php?forward=send.php" class="t">找回登录密码</a> <span id="doldpassword" class="f_red"></span></td>
</tr>

<tr>
<td class="tl">新支付密码</td>
<td class="tr"><input type="password" size="20" name="post[payword]" id="payword" autocomplete="new-password"/>   <span class="f_grey">如不更改支付密码,请留空</span> <span id="dpayword" class="f_red"></span></td>
</tr>
<tr>
<td class="tl">重复支付密码</td>
<td class="tr"><input type="password" size="20" name="post[cpayword]" id="cpayword" autocomplete="new-password"/>   <span id="dcpayword" class="f_red"></span></td>
</tr>
<tr>
<td class="tl">现有支付密码</td>
<td class="tr f_red"><input type="password" size="20" name="post[oldpayword]" id="oldpayword" autocomplete="new-password"/>   支付密码默认和注册设置密码相同  <a href="send.php" class="t">找回支付密码</a><span id="doldpayword" class="f_red"></span></td>
</tr>
<script type="text/javascript">
	setTimeout(function remve(){
		var pass=document.getElementById("password");
		pass.removeAttribute("readonly");
	},2000);
</script>
</tbody>


总结原理

其实就是告诉浏览器不写入 readonly ,通过JS用setTimeout延迟时间,让其框取消readonly属性,使密码框可以写入

本文标题: 开发中怎么禁止浏览器在记住密码后回显在密码框的问题

本文链接: https://www.mbkfw.com/course/1194.html (转载时请注明来源链接)

本文说明: 有问题或投稿请发送至: 邮箱/kf@dtmuban.com    QQ/290948585

特别鸣谢: 如果您觉得本文对您有帮助,请给我们一个小小的赞,收藏本文更利于反复学习哦!

 
destoon程序前端开发标签生成器

下班PC阅读不方便?

手机也可以随时学习开发

微信关注公众号“商企云服”
"模板开发网前端开发教学"
每日干货技术分享
 
0

圈友点评

文明上网理性发言,请遵守网络评论服务协议
更多>

猜您需要

 
【ECS精选特惠】新用户上云低至1折起


色彩
×

《客户实名在线注册登记》售后一直都在!

关注

微信
关注

微信扫一扫
不同的环境体验

幸运大转盘,好礼等您拿

模板开发网公众号

模板开发网微信小程序

代授权

程序
授权

黑小二

联系
客服

很高兴为您服务
尊敬的用户,欢迎您咨询,我们为新用户准备了优惠好礼。咨询客服

联系客服:

在线QQ: 290948585

客服电话: 18605917465

E_mail邮箱: kf@dtmuban.com

微信公众号: 商企云服

微信小程序: 模板开发

QQ客服 微信客服DT授权代办 在线交谈 智能小云

工作时间:

周一至周五: 09:00 - 18:00

APP下载

安卓
APK

模板开发网安卓版APP

反馈

我要
反馈