Pourquoi mon validateur element-ui-form ne peut-il pas être appelé ?
P粉274161593
P粉274161593 2024-03-27 12:14:18
0
1
411

Le code est le suivant :

**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'}]

Malheureusement, il ne s'exécute pas et il n'y a aucune erreur. Je veux savoir comment y faire face.

P粉274161593
P粉274161593

répondre à tous(1)
P粉187677012

Je pense que le problème pourrait être causé par cette ligne :

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

Cela devrait probablement être :

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

!res.code 将始终评估为 truefalse。所以 !res.code==20000 sera toujours faux. Peu importe ce qui est saisi, le rappel d'erreur suivant ne sera pas exécuté :

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

Voici une petite démo montrant que "bar" est toujours imprimé

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)}`)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal