プロジェクトのシナリオ:
次の検証が必要です。
問題の説明
左側が閉じ、右側が開いた 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' },
],
//......
},
バリデーターに対応する名前は、上記の変数の名前と一致します。