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

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

```

{{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')

})

},

}

}

```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值