赞
踩
表单使用的是uview,利用u-form元素的rules属性为表单model对象设置校验,实现表单通用校验功能,避免重复开发。
表单样式根据自己的需求设置,在这里不在展示样式代码
// 路径 /utils/validateForm.js
// 不能为空
const noEmpty = (rule, value, callback) => {
if (value==='') {
return callback(new Error('该项不能为空'))
} else {
callback()
}
}
export default {
noEmpty: [{ required: true, validator: noEmpty, trigger: 'blur' }]
}
// 路径 /mixins/validateForm.js
export default{
onReady() {
//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
this.$refs.form.setRules(this.sugonFormRules)
}
}
// html lb-picker是时间、下拉、级联选择的插件,如果有需要可以自行了解使用 <view class="sugon-form sugon-card"> <u--form ref="form" :model="sugonForm" :rules="sugonFormRules"> <u-form-item label="姓名:" prop="name"> <u--input v-model="sugonForm.name" placeholder="请输入"></u--input> </u-form-item> <u-form-item label="会议室" prop="meetHome"> <lb-picker :list="[]" mode="selector" :props="meetHomeProps" v-model="sugonForm.meetHome" ref="picker"> <u--input :readonly="true" v-model="sugonForm.meetHome"></u--input> </lb-picker> </u-form-item> </u--form> <view @click="handleSubmit">提交</view> </view> // js /** 单校验需要引入start **/ import validate from '@/utils/validateForm.js' import commonRules from '@/mixins/validateForm.js' /** end **/ export default { mixins:[commonRules,userPermission], data() { return { // 表单start sugonForm:{ name:'', meetHome:'' }, sugonFormRules:{ name:validate.noEmpty, meetHome:validate.noEmpty }, } }, methods: { // 提交 handleSubmit(){ this.$refs.form.validate().then(res=>{ console.log(res) }).catch(error=>{ console.log(error) }) } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。