uni-forms 调用 validate 方法后导致页面崩溃的问题,问题浮现请下载附件进行运行。其中重复密码和新的密码填写不一致触发自定义表单验证方法后,页面出现崩溃信息弹框。

- 发布:2024-02-08 11:34
- 更新:2024-02-19 15:16
- 阅读:285
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 版本 Windows 11 家庭中文版 版本 23H2 安装日期 2024/1/22 操作系统版本 22631.3007 序列号 M70RF69W 体验 Windows Feature Experience Pack 1000.22681.1000.0
浏览器平台: Chrome
浏览器版本: 版本 121.0.6167.160(正式版本) (64 位)
项目创建方式: CLI
CLI版本号: ^2.0.2-3090920231225001
操作步骤:
预期结果:
触发自定义表单验证后的验证失败不会引起页面的崩溃操作
触发自定义表单验证后的验证失败不会引起页面的崩溃操作
实际结果:
重复密码和新的密码填写不一致触发自定义表单验证方法后,页面出现崩溃信息弹框。
重复密码和新的密码填写不一致触发自定义表单验证方法后,页面出现崩溃信息弹框。
bug描述:
uni-forms 调用 validate 方法后导致页面崩溃的问题,问题浮现请下载附件进行运行。其中重复密码和新的密码填写不一致触发自定义表单验证方法后,页面出现崩溃信息弹框。

demo示例里面存在重复验证,将nPassword里面的校验去掉即可
nPassword: {
rules: [
{ required: true, errorMessage: "新密码不能为空" },
{
pattern:
'^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*)(?=.*[`~!@$%^&*()_\\-+=<>.?:"{}].*).{8,20}$',
errorMessage: "密码格式不正确",
},
{
validateFunction: (rule, value, data, callback) => {
if (
!/^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*)(?=.*[`~!@$%^&*()_\-+=<>.?:"{}].*).{8,20}$/.test(
value
)
) {
return callback("密码格式不正确");
}
//将下面这个重复验证注释掉或删除
// if (this.formData.rPassword) {
// this.$refs.form.validateField("rPassword");
// }
return callback();
},
},
],
},