html表单验证必填项,el-form多个表单同时验证必填项

2021年6月24日 10点热度 0条评论 来源: zetachow~~

> 一个页面上多个表单需要在一个操作情况下同时验证必填项是否填写完整

```

{ {formData.orderId}}

保存订单

```

```

export default {

data() {

return {

formData: {

orderTypeValue: '', // 订单类型

distributionId: '', // 配送方式

invoiceType: '', // 发票类型

payWay: '', // 支付方式

isInvoice: 0, // 是否开票

provinceId: "", // 省份id

cityId: "", // 城市id

districtId: "", // 区id

importOrderId: "",

zipCode: '', // 邮编

},

rules: { // 必填输入提示

payWay: [ {required: true, message: '请选择支付方式', trigger: 'change' } ],

distributionId: [ {required: true, message: '请选择配送方式', trigger: 'change' } ],

orderTypeValue: [ { required: true, message: "请选择订单类型", trigger: "change" } ],

userName: [ { required: true, message: "请输入收货人名字", trigger: "blur" } ],

provinceId: [ { required: true, message: "请选择地区", trigger: "change" } ],

address: [ { required: true,message: "请输入街道地址",trigger: "blur"} ],

mobile: [ { required: true,message: "请输入手机号码",trigger: "blur"}, { validator: validatePhone } ],

},

}

},

methods: {

// 对于四个form进行promise封装进行同时验证

handleSave(formData) { // 保存操作

let formArr=['formData1','formData2','formData3']//三个form表单的ref

var resultArr=[] //用来接受返回结果的数组

var _self=this

function checkForm(formName) { //封装验证表单的函数

var result = new Promise(function(resolve, reject) {

_self.$refs[formName].validate((valid) => {

if (valid) {

resolve();

} else { reject() }

})

})

resultArr.push(result) //push 得到promise的结果

}

formArr.forEach(item => { //根据表单的ref校验

checkForm(item)

})

Promise.all(resultArr).then(values => {

this.submitForm() // 此时必填完成,做保存后的业务操作

}).catch( _ => {

console.log('err')

})

},

}

}

```

    原文作者:zetachow~~
    原文地址: https://blog.csdn.net/weixin_28965077/article/details/118262493
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。