elementui表单校验遇到的问题

1、项目有时候表单的校验规则复杂,需要自定义

关键代码如下

// html代码部分
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
  <el-form-item label="评估净值">
    <el-input v-model="form.asPgjz" prop="asPgjz"></el-input>
  </el-form-item>
</el-form>

// js代码部分
data() {
	return {
		form: {
			asPgjz: ''
		},
		rules: {
			asPgjz:[
			    { required: true, trigger: 'blur',message: '请输入评估净值'},
			    {validator: (rule,value,callback) =>{
			    	// 根据需求,写代码逻辑
		            let m = api.amountInspectionM(value)
			            if(m.b){
			                this.formAddItemModel.asPgjz = api.twoZero(value)
			                this.asPgjzFlag = true
			            }else{
			                this.asPgjzFlag = false
			            }
			            return m.b
			        } ,trigger: 'blur',message: '只能输入数字和两位小数'}
			        // validator的值也可以摘出去作为一个方法,如下
			        // { validator: this.numericalRate, trigger: 'blur' }
			]
		}
	}
},
methods: {
	numericalRate (rule, value, callback) {
      if (Number(value) >= 100) {
        callback(new Error('数值不能大于100%'))
      }else {// else必须写,否则校验规则通过后的代码不会执行
		callback()
	  }
    }
}

2、prop值为动态时,有时候会出现校验不生效的问题

此时在给prop赋值时注意,默认赋值不能为空,可以如下设置

<el-form-item :prop="deviceType === 3?'deviceName': 'empty'"></el-form-item>
// 用empty或其他任意字符串代替即可
3、在通过v-if来控制el-form-item是否显示的时候,或者控制具体显示哪一种情况的时候,一定要给el-form-item写上key属性,否则也会导致校验失效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值