el-input 入力ボックスでは、次の入力ボックスの値が前の入力ボックスの値よりも大きいことを検証する必要があります。

プロジェクトのシナリオ:

次の検証が必要です。


問題の説明

左側が閉じ、右側が開いた 6 つの連続した間隔を含むフォームが必要です。そのため、次の入力ボックスに入力される値は、前の入力ボックスに入力された値より大きくなければなりません。

この部分はデータの戻り値と同じレベルに配置されます。

 var interval1_valid = (rule, value, callback) => {
    if(this.formInterval.interval1){
     if(Number(this.formInterval.min) < Number(value)){
       callback();
     }else{
       callback(new Error('须大于0'));
     }
   }else{
     callback();
   }
  }
 var interval2_valid = (rule, value, callback) => {
   if(this.formInterval.interval1){
     if(Number(this.formInterval.interval1) < Number(value)){
       callback();
     }else{
       callback(new Error('须大于上一个输入框数值'));
     }
   }else{
     callback();
   }
 }
 var interval3_valid = (rule, value, callback) => {
   if(this.formInterval.interval2){
     if(Number(this.formInterval.interval2) < Number(value)){
       callback();
     }else{
       callback(new Error('须大于上一个输入框数值'));
     }
   }else{
     callback();
   }
 }
//......后面以此类推

この部分をリターンに入れるのがルールの通常の書き方です

 rules: {
        interval1: [
          { required: true, message: '请输入', trigger: 'change' },
          { validator: interval1_valid, trigger: 'change' },
        ],
        interval2: [
          { required: true, message: '请输入', trigger: 'change' },
          { validator: interval2_valid, trigger: 'change' },
        ],
        interval3: [
          { required: true, message: '请输入', trigger: 'change' },
          { validator: interval3_valid, trigger: 'change' },
        ],
       //......
      },

バリデーターに対応する名前は、上記の変数の名前と一致します。


解決:

おすすめ

転載: blog.csdn.net/m0_49017085/article/details/126857400