当前位置: 首页 > Web前端 > vue.js

我在实际项目开发中遇到过关于ElementUI各种表单验证的

时间:2023-03-31 23:56:00 vue.js

博客原文地址https://finget.github.io/2020/02/11/element-form/第一个最简单的必填字段rules:{real_operator_id:{required:true,message:'请选择委托方',trigger:'change'}}第二类正则验证字段rules:{capacity:[{required:true,message:'Pleaseenterthecapacity',trigger:'change'},{pattern:/^[1-9][0-9]{0,3}$/,message:'您只能输入正整数且不超过4位',trigger:'change'}],}??此方法可用于任何电话、邮箱、号码、英文、汉字...等。可以通过正则表达式来验证。第三类富文本需要验证rules:{content:[{required:true,message:'请填写策略内容',trigger:'change'}],}这里撒个娇操作,原来输入框的校验是监听输入框的各种事件(change,blur),但是富文本是第三方插件,监听不到,所以我使用了双向绑定vue的原理,写了一个隐藏的输入框,搞定了。第四种多输入框

data(){letcheckBuilding=(rule,value,callback)=>{if(!this.form.building_id){callback(newError('请选择办公楼'));}elseif(!this.form.building_detail.id){callback(newError('请选择一个建筑'));}elseif(this.unitList.length&&!this.form.building_detail.unit_id){callback(newError('请选择一个单元'));}elseif(!this.form.building_detail.floor){callback(newError('请填写楼层'));}else{callbaCK();}};return{rules:{building_id:{required:true,validator:checkBuilding,trigger:'change'},}}}第五种动态验证——从官网复制代码的普通动态验证。地点删除第六种动态验证——多输入框验证每一个输入第一种情况Frame单独验证样式控制好时,循环生成多个,分别验证layer
第二种这种情况下的统一校验有时候,由于样式问题,我们只能写多个输入框,而不能生成多个,在同一个
使用前取消小时数,扣除订单总额%费用(不包括保证金)
rule看起来像这样:methods:{//验证规则checkRules(rule,value,callback){//通过rule.field获取索引,其余都是常规操作letindex=rule.field.split('.')[1]-0;if(!this.form.rules[index].hours||!this.form.rules[index].percent){callback(newError('请填写规则'));}elseif(Number(this.form.rules[index].percent)>100){callback(newError('百分比不能超过100%'));}else{回调();}},}第七种动态验证-关联验证在form.payment.rent_period中填写租金
第八次动态验证-判断....attentionIndustryValidator(rule,val,callback){让num=0;this.industryForm.follow.forEach(item=>{//这里是数组判断if(this.equals(val,item.industry)){num++;}});if(num>=2){callback(newError('PleaseDon'重复选择同一个行业!'));}else{callback();}}第九种清除某输入项校验的方式如图,一开始选择意向类型为按地区,并且此时意向区的值已经校验完毕,并提示错误信息,然后切换到by站,如果意向区校验不通过cleard,错误信息会一直存在...watch:{'form.intention_type':{handler(){this.$refs['areaForm'].clearValidate();}}},最后我们自定义校验(validator),有两种方式。第一个定义在数据data(){lettestrule1=(rule,val,callback)=>{};return{}}用于数据中的规则:data(){lettestRule1=(rule,val,callback)=>{};return{rules:{name:{required:true,validator:testRule1,trigger:'blur'}}}}第二个定义在methodsmethods:{testRule2(rule,val,callback){}}:...