form表单校验,this.$refs[name].validate(valid)返回false,解决方案

1. 如果 rules 里有二次校验,校验成功需要加 callback()
//比如:

ruleValidate:{
	deviceName: [
          {
            required: true,
            message: "设备名称不能为空",
            trigger: "blur"
          }
           {
             validator: (rule, value, cb) => {
               lenValid(rule, value, cb);
             },
             trigger: "change"
           }
        ]
 }
//要在data 里,return 上加
var lenValid = (rule, value, callback) => {
      let regx = /^[a-zA-Z0-9\u4e00-\u9fa5]{0,100}$/;
      if (this.deviceForm.deviceName.match(regx) == null) {
        callback(new Error("名称长度<= 100,支持汉字、字母、数字"));
        return;
      } else {
        callback(); //成功的callback(),不能少
      }
    };
2. ref 的值要和 model 的值一致
 <Form
        ref="deviceForm"
        :model="deviceForm"
        :rules="ruleValidate"
      >
3. 提交的表单的值默认是字符串

如果一直校验不通过,可以打印提交的表单对象,看是否有数值类型需要转化为字符串

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在elementUI的表单校验中,当校验通过时,打印的值不会显示,而校验不通过时会打印出来。\[1\]引用\[2\]:在定义的rules中没有包含该prop的情况下,可以尝试以下解决思路:首先查看ivew官网,通常简单的问题可以在官网找到解决方法。如果在官网没有找到解决方法,可以尝试在百度上搜索相关问题,虽然可能无法得到实质性的解决方法,但至少可以开阔思路。在这个过程中,可以尝试打印出this.$refs.form.validate()来查看校验的状态。\[2\]引用\[3\]:在使用this.$refs.form.validate()方法获取校验状态时,无法获取到结果,console没有输出。解决方法是去掉没有加入验证规则的prop。\[3\] 问题: 如何使用this.$refs.Rform.validate()方法进行校验? 回答: 在使用this.$refs.Rform.validate()方法进行校验时,可以按照以下步骤进行操作:首先,确保在代码中已经定义了需要校验的字段,并且在相应的FormItem中设置了prop属性,例如<FormItem label="跨网网关" prop="groupId">。然后,可以使用this.$refs.Rform.validate((valid)来进行校验。在这个方法中,valid参数表示校验的结果,可以根据valid的值来判断校验是否通过。 #### 引用[.reference_title] - *1* [this.$refs[formName].validate((valid) =>{}) 无效](https://blog.csdn.net/qq_42309765/article/details/122061651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [this.$refs.form.validate()不起作用](https://blog.csdn.net/K_lele/article/details/126722290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值