当修改新密码与确认密码一致时,触发确认密码的验证,当修改确认密码与新密码一致时,触发新密码的验证,
这样会形成死循环,
代码如下
const validatePass = function (rule, value, callback) {
if(value.length < 8 || value.length > 20 ){
callback(new Error('长度在 8 到 20 个字符'));
}
if (value === '' || value === undefined) {
callback(new Error('请输入新密码'));
} else {
newPwd = value;
const reg=/^(?=.*[a-zA-Z])(?=.*[1-9])(?=.*[\W]).{8,}$/;
if (!reg.test(newPwd)) {
callback(new Error('密码应同时包含字母、数字、特殊符号'));
} else if (value != rePwd) {
// _this.$refs['changePwdFormName'].validateField('repwd')
callback(new Error('两次输入密码不一致!'));
// callback()
} else {
_this.$store.getters['uiModule/getChangePwd'].validateField('repwd')
return
callback();
}
}
};
const reValidatePass = (rule, value, callback) => {
if (value === '' || value === undefined) {
callback(new Error('请再次输入新密码'));
} else {
rePwd = value;
if (value !== newPwd) {
callback(new Error('两次输入密码不一致!'));
} else {
_this.$store.getters['uiModule/getChangePwd'].validateField('newpwd')
return
callback();
}
}
};
改如何解决这个问题?
去掉这行就行了吧