Vue中form表单联动大小值校验怎么实现?

Vue中form表单联动大小值校验怎么实现?


回答:

可以使用自定义检验来处理,可以按照这个示例来改写。

例如说:

<template>

...

<el-form-item label="消费总次数" required>

<el-col :span="11">

<el-form-item prop="min">

<el-input-number placeholder="请输入最小值" :min="0" v-model="formData.min" />

</el-form-item>

</el-col>

<el-col :span="2">-</el-col>

<el-col :span="11">

<el-form-item prop="max">

<el-input-number placeholder="请输入最大值" :min="formData.min" v-model="formData.max" />

</el-form-item>

</el-col>

</el-form-item>

...

</template>

<script>

export default {

data(){

return {

formRules:{

min:[

{ validator: this.validateMinNumber, trigger: 'blur' }

],

max:[

{ validator: this.validateMaxNumber, trigger: 'blur' }

],

}

}

},

methods:{

validateMinNumber(rule, value, callback){

const { max } = this.formData

if(!value) return callback('请输入最小值')

if(Number(max) && value > max) return callback('最小值不得大于最大值')

callback()

},

validateMaxNumber(){

// 和校验最小值同理,虽然因为有了最大值输入框的min值限制和最小值输入框的超出校验一般不会出现问题,但是为了提示更加友好还是需要加上的。

}

}

}

</script>


回答:

如果是用elementUI的话自定义一下验证规则就可以,大概就像这样:

const validateMinVal = (rule, value, callback) => {

if (!value) {

callback(new Error('请输入最小值'));

} else if (Number(value) > Number(this.maxVal)) {

callback(new Error('最小值不能大于最大值'));

} else {

callback()

}

};

const validateMaxVal = (rule, value, callback) => {

if (!value) {

callback(new Error('请输入最大值'));

} else if (Number(value) < Number(this.minVal)) {

callback(new Error('最大值不能小于最小值'));

} else {

callback();

}

};

以上是 Vue中form表单联动大小值校验怎么实现? 的全部内容, 来源链接: utcz.com/p/932934.html

回到顶部