微信小程序 密码框改为text后不可见,需要点击一下

[复制链接]
发表于 2025-8-26 06:08:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这个问题是做项目的时候碰到的。
密码框常规写法:
  1. <view class="inputBox">
  2.   <view class="input-container">
  3.     <input type="{{inputType}}" placeholder="请输入密码" data-id="passwordValue" bindinput="getinput" value="{{passwordValue}}" placeholder-style="color:#ccc8c8" />
  4.     <image class="eye-icon" src="{{isPasswordVisible ? '/images/open-eye.png' : '/images/closed-eye.png'}}" bind:touchstart="onEyeTouchStart" bind:touchend="onEyeTouchEnd"/>
  5.   </view>
  6. </view>
复制代码
函数:onEyeTouchStart 和 onEyeTouchEnd 的实现:
  1. onEyeTouchStart() {
  2.     const passwordValue = this.data.passwordValue;
  3.     this.setData({
  4.       inputType: 'text',
  5.       isPasswordVisible: true
  6.     });
  7.   },
  8.   onEyeTouchEnd() {
  9.     const passwordValue = this.data.passwordValue;
  10.     this.setData({
  11.       inputType: 'password',
  12.       isPasswordVisible: false,
  13.     });
  14.   },
复制代码
然后就会出现以上的问题(真机上),后来查了不少资料,有个方法可以办理这个问题:
那就是改变input属性后刷新一下,我改进了一下,确实办理了这个问题,特此记录。
改进后的代码:
  1. onEyeTouchStart() {
  2.     const passwordValue = this.data.passwordValue;
  3.     this.setData({
  4.       inputType: 'text',
  5.       isPasswordVisible: true,
  6.       passwordValue:''
  7.     },()=>{
  8.       this.setData({
  9.         passwordValue:passwordValue
  10.       });
  11.     });
  12.     console.log('in onEyeTouchStart,inputType:',this.data.inputType,'isPasswordVisible',this.data.isPasswordVisible);
  13.   },
  14.   onEyeTouchEnd() {
  15.     const passwordValue = this.data.passwordValue;
  16.     this.setData({
  17.       inputType: 'password',
  18.       isPasswordVisible: false,
  19.       passwordValue:''
  20.     },()=>{
  21.       this.setData({
  22.         passwordValue:passwordValue
  23.       });
  24.     });
  25.     console.log('in onEyeTouchEnd,inputType:',this.data.inputType,'isPasswordVisible',this.data.isPasswordVisible);
  26.   },
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表