vue.js element-ui validate中代码不执行

Vue.js表单验证问题
本文探讨了Vue.js中使用element-ui组件库进行表单验证时遇到的问题。具体讨论了一个自定义验证规则的方法未被调用的情况,并给出了可能的原因及解决办法。

vue.js element-ui validate中代码不执行

直接上代码

var validateName = (rule,value,callback) =>{
    if(!value){
        return callback(new Error('用户名不能为空'))
    }
};

这样写的方法是错误的在methods里面函数不validate是不会执行的

registForm:function (){
    this.$refs.ruleForm2.validate((valid) => {
        if (valid) {
            *这段方法不会执行*
            this.logining = true;
             var RegistParams = { 
                  "userName": this.ruleForm2.userName,
                  "checkCode":this.ruleForm2.code,
                  "userMobileNumber":this.ruleForm2.pass,
                  "userLoginPassword":this.ruleForm2.phone
              };
            requestRegist(RegistParams).then(data => {
                this.logining = false;
                let result = data;
                if(result.status=="1"){
                    this.$router.push({path:'/login'})
                }else{
                    this.$message({
                        message: result.message,
                        type: 'error'
                    })
                }
            })
        }else{
            console.log('error submit!!');
            return false;
        }
    })
}

总结
因为最开始删除了else中的callback(),在执行this,$refs.ruleForm2.validate((valid) =>{})的时候内容的代码一直不会执行,
所以要保证在没一个判断里面都要有callback().

由于没有直接与解决 util.js 中 async - validator 报 'activityNum is required' 警告方法相关的引用内容,过可从通用角度提供解决思路。 `async-validator` 是一个用于表单验证的库,当出现 'activityNum is required' 警告,意味着验证规则要求 `activityNum` 字段为必填项,但实际该字段的值为空或未提供。以下是可能的解决办法: #### 1. 确保表单数据中包含 `activityNum` 且有值 要保证在进行验证时,表单数据对象里包含 `activityNum` 字段,并且该字段有有效的值。示例代码如下: ```javascript // 假设这是表单数据对象 const formData = { activityNum: 'your_activity_number' // 确保这里有值 }; ``` #### 2. 检查验证规则 查看验证规则,确认 `activityNum` 的必填规则是否符合预期。示例代码如下: ```javascript import Schema from 'async-validator'; const descriptor = { activityNum: { type: 'string', required: true, // 若需要必填,可将此属性移除或设为 false message: 'activityNum is required' } }; const validator = new Schema(descriptor); validator.validate(formData, (errors, fields) => { if (errors) { // 处理验证错误 console.log(errors); } else { // 验证通过 console.log('Validation passed'); } }); ``` #### 3. 动态修改验证规则 在某些情形下,可能需要依据特定条件动态修改验证规则。示例代码如下: ```javascript // 根据条件动态修改验证规则 if (someCondition) { descriptor.activityNum.required = false; } const validator = new Schema(descriptor); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值