【问题标题】:Why can't my validator of element-ui-form be called?为什么我的 element-ui-form 验证器不能被调用?
【发布时间】:2021-12-29 07:06:25
【问题描述】:

代码如下:

**validateCode:[{validator:(rule, value, callback)=>{
    if (!value) { 
      callback(new Error('you have to input code')) 
    } else if(this.radioValue=="mobile"){
      validatingCo(this.user.mobile,value).then((res)=>{
        if(!res.code==20000){
           return callback(new Error('the code is wrong or expired'))
         } else{
             callback()
         }
      })
    }
    else{
       validatingCo(this.user.email,value).then((res)=>{
         if(!res.code==20000){
           return  callback(new Error('the code is wrong or expired'))
         } else{
           callback()
         }
       })
    }
  }, trigger:'blur'}]

不幸的是,它没有执行并且没有错误。 我想知道怎么处理。

【问题讨论】:

    标签: vue.js element-ui


    【解决方案1】:

    我认为问题可能是由这行引起的:

    if(!res.code==20000){
      // Some stuff here
    }
    

    应该是这样的:

    if(res.code!=20000){
      // Some stuff here
    }
    

    !res.code 将始终评估为true 或false。所以!res.code==20000 永远是假的。无论输入如何,以下错误回调将永远不会执行:

    return callback(new Error('the code is wrong or expired'))
    

    这是一个小演示,显示“bar”将始终被打印出来

    function simple_if(number) {
      if (!number == 20000) {
        return "foo"
      } else {
        return "bar"
      }
    }
    
    console.log(`res=20000. Expect 'bar': ${simple_if(2000)}`)
    console.log(`res=3. Expect 'foo': ${simple_if(3)}`)
    console.log(`res=0. Expect 'foo': ${simple_if(0)}`)

    【讨论】:

      猜你喜欢
      • 2014-01-09
      • 2011-12-09
      • 1970-01-01
      • 2013-10-17
      • 2011-11-26
      • 1970-01-01
      • 2012-04-03
      • 2016-11-13
      • 2017-11-15
      相关资源
      最近更新 更多