el-form验证问题

1.如果第一次打开el-dialog有验证失败,重新打开el-dialog仍然会有验证失败

html 复制代码
<div>
	<el-dialog width="50%" title="对象信息" :visible.sync="dialogFormVisible" @close="closedialog">
		<UploadFile ref="child"></UploadFile>
	</el-dialog>
</div>

解决方案:

给el-dialog绑定close事件,并调用clearValidate()

javascript 复制代码
 closedialog () {
      this.$refs.child.$refs.formdata.clearValidate();
},

2.手动控制验证状态

error:错误信息

validate-status:验证状态。 success 验证成功, error验证失败, validating验证中,''未验证

html 复制代码
<el-form-item 
	:error="validateFormState.error" 
	:validate-status="validateFormState.state">
</el-form-item>
// 在验证成功或者失败的时候去手动控制error和validate-status的值即可。

3.编辑界面验证这行数据的正确值验证失败

后端根据传送的值验证是否可用,但是在编辑界面中,这条数据的正确值也会被送到后端进行验证(这里新增和编辑使用了同一个组件),所以会出现验证失败问题。

javascript 复制代码
var validateNum = async (rule, value, callback) => {
  if (value === '') {
     callback(new Error('请输入版本号'));
   } else if (value === this.versionNum) {
     callback();
   } else {
     var val = await this.onBlur();
     if (val) {
       callback();
     } else {
       callback(new Error('版本号不可用'));
     }
   }
 }

增加一个条件进行判断

拓展

调用函数进行验证:

javascript 复制代码
// 对整个表单进行验证
this.$refs.formdata1.validate(valid=>{
	// 验证成功则valid为true
})
//对部分字段进行验证
validateField

父组件调用子组件中的ref:this.$refs.child.$refs.formdata.clearValidate()

el-form 提供了表单校验功能, :rules 属性设置校验规则,并通过 el-form-item 的 prop 属性绑定校验规则。

el-form 的 model 是 formData,那么 el-form-item 中所有需要校验的表单的 的 model 也必须是 formData.xxx ,即 formData 对象的直接属性。

需要注意的是,如果要用 rules 进行表单校验,那么 el-input 绑定的元素必须是 el-form 的 model 的直接属性,否则会导致校验失败。

el-input默认值的类型是字符串类型,输入即使是数字,也被el-input 自己处理成了字符换数字。

解决办法:

html 复制代码
<el-form-item class="base_block" label="渠道号" prop="channelId" label-width="40%">
	<el-input type='number' class="el_input_box" v-model.number="channel.baseConfDetail.channelId" :disabled="!isEdit"/>
</el-form-item>

设置type='number',v-model 需要更改为 v-model.number 否则同样验证不通过

相关推荐
【ql君】qlexcel8 分钟前
Notepad++ 复制宏、编辑宏的方法
开发语言·javascript·notepad++··宏编辑·宏复制
MiyueFE8 分钟前
14 个逻辑驱动的 UI 设计技巧,助您改善任何界面
前端·设计
啃火龙果的兔子12 分钟前
前端单元测试覆盖率工具有哪些,分别有什么优缺点
前端·单元测试
Zevalin爱灰灰17 分钟前
MATLAB GUI界面设计 第六章——常用库中的其它组件
开发语言·ui·matlab
冰糖猕猴桃24 分钟前
【Python】进阶 - 数据结构与算法
开发语言·数据结构·python·算法·时间复杂度、空间复杂度·树、二叉树·堆、图
「、皓子~40 分钟前
后台管理系统的诞生 - 利用AI 1天完成整个后台管理系统的微服务后端+前端
前端·人工智能·微服务·小程序·go·ai编程·ai写作
就改了43 分钟前
Ajax——在OA系统提升性能的局部刷新
前端·javascript·ajax
凌冰_1 小时前
Ajax 入门
前端·javascript·ajax
wt_cs1 小时前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
京东零售技术1 小时前
京东小程序JS API仓颉改造实践
前端