请问一下,vue-element表单自定义验证规则不生效是哪里问题

我有个表单里面这样写的

data(){
constvalidateNumber= (rule,value,callback) => {

if(!value) {

callback(newError("不能为空"));

      }

value=Number(value);

if(typeofvalue==="number"&&!isNaN(value)) {

callback();

      } else {

callback(newError("价格必须为数字"));

      }

    };
return{
formRules:{
paymentDeadlineTime=[
 { required:true, message:"不能为空", trigger:"blur" }
 { validator: this.validateNumber },
];
}
}},
methods:{
//是否投标
radioChange(){
if(this.editForm.isBid==="1"){
this.formRules.paymentDeadlineTime=[
 { required:true, message:"不能为空", trigger:"blur" }
 { validator: this.validateNumber },
];
}else{
this.formRules.paymentDeadlineTime=[]
}
}
}

单选按钮切换,如果等于1的话,就给他添上对应的验证规则,反之就清空验证规则,但是这个如果从是切换到否,在切换到是的话,我的自定义验证规则就部生效了,只有

 { required:true, message:"不能为空", trigger:"blur" }

会生效,

{ validator: this.validateNumber },//规则已经在data中写了

这个就不生效了,请问有人碰到过吗 ,谢谢!

阅读 5.4k
2 个回答

没有遇到过诶,不过有个解决的思路是:

this.formRules.paymentDeadlineTime =[
 { validator: this.validateNumber, required: true, trigger:"blur" }
];
// 在 validateNumber 函数内处理空时的情况
validateNumber() {
    if (!value.trim()) {
        callback(new Error('不能为空'));
    } else {
       ...
    }
}

你把规则贴出来,别人才能看问题出在哪呀?另外看你上面贴的是没有触发条件呀

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题