密码框禁止粘贴

This commit is contained in:
姚亚男
2021-10-28 11:08:01 +08:00
parent a9e0bf7aa2
commit 06d58bbdf3
8 changed files with 342 additions and 17 deletions
+41
View File
@@ -15,6 +15,8 @@ Page({
requestCodeSuccess: true,
randCodeImage: '' // 验证码
},
vals: [], // 禁止密码粘贴用到的数组
password: '', // 密码
rsaPublicKey: '', // 公钥
flag: false
},
@@ -48,6 +50,45 @@ Page({
})
})
},
clearrepeatval(){
this.data.vals = []
wx.showToast({
title: '禁止复制粘贴请手动输入',
icon: 'none',
duration: 2000
})
this.setData({
password: ''
})
return
},
handlePasswordInput(e) { //禁止输入中复制粘贴
// 获取当前数组
const vals = this.data.vals
// 获取当前输入的值
const currentval = e.detail.value.replace(/\s+/g, "")
if(currentval){ // 如果值存在追加到vals中
vals.push(currentval)
}
if(vals.length == 1 ){
const v = vals[vals.length-1].length
if(v > 1){ // 如果第一个的长度就大于1 说明是粘贴过来的
this.clearrepeatval()
}
}
if(vals.length > 1){
// 如果值数组大于1 就获取最后一个值长度和倒数第二个值长度
// 比较值长度差如果大于1 则粘贴的
const lastv = vals[vals.length-1].length // 获取最后一个值的长度
const secondv = vals[vals.length-2].length // 获取倒数第二个值得长度
const dis = lastv - secondv
if(dis>1){
this.clearrepeatval()
}
}
// 最后赋值
this.data['password'] = currentval
},
// 提交
formSubmit(e) {
if(!e.detail.value.phone){
+1 -1
View File
@@ -10,7 +10,7 @@
<view class="form-item">
<view class="text-label">密码</view>
<view class="text-value text-password">
<input name="password" value="{{password}}" password="{{show}}" placeholder="请输入密码" />
<input name="password" value="{{password}}" password="{{show}}" placeholder="请输入密码" bindinput="handlePasswordInput" />
<image src="../../assets/images/show.png" class="show" wx:if="{{!show}}" bindtap="showPassword"></image>
<image src="../../assets/images/none.png" class="show" wx:if="{{show}}" bindtap="showPassword"></image>
</view>