elementui 表单验证

[TOC]

表单验证错误

做表单验证时,需要必填,然后判断账户是否为数字。出现一个bug如图。填写了正确的数值但是依旧一直提示为空。
这里写图片描述
后来发现问题出现在props验证和v-model值上,这两个必须为同一个参数且在data内声明了。
这里写图片描述
这里写图片描述

改为prop="thatAccount", roules 内的也改掉,成功执行了验证。
这里写图片描述

form的几种验证方法:

1.在单个的表单域上传递属性的验证规则。

直接在具体表单上写验证规则,不需要给<el-form>绑定rules

<el-form-item
    prop="email"
    label="邮箱"
    :rules="[
      { required: true, message: '请输入邮箱地址', trigger: 'blur' },
      { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
    ]"
  >
    <el-input v-model="dynamicValidateForm.email"></el-input>
  </el-form-item>
2. 自定义验证规则,进行多次验证。
2.1需要form绑定roules
<el-form ref="form" 
    :model="search_info" 
    :rules="rules"  
    label-width="100px" 
    size="mini">
	<!-- ```-->
</el-form>
2.2 data内声明规则,rules放在data下的return内,指定具体自定义的规则。
data{
	var checkThatName = (rule, value, callback) => {
	  if (value === '') {
	    callback(new Error('请输入对方户名'));
	  } else if (value.length>13) {
	    callback(new Error('太长了!'));
	  } else if (value==='猪'){
	     callback(new Error('你个大猪蹄子'));
	  }else{
	    callback();
	  }
	};
	return{
		checkinfo:{
			thatName:''
		},
		rules:{
          thatName:{ 
          validator: checkThatName, //自定义验证方法名
          trigger: 'blur' //触发方法,可多个。eg:trigger: ['blur', 'change']
          }
        }
	}
}

这里写图片描述

3. 直接写在rules内

适用于简单的校验,如必填、邮箱、日期、字段长度、数字。

数字类型的验证需要在 v-model 处加上 .number 的修饰符,这是 Vue 自身提供的用于将绑定值转化为 number 类型的修饰符。
eg: v-model.number="checkinfo.thatName"

rules: {
          name: [//需要验证的字段名,下面的只是栗子,有些不能同时存在一个验证内
            { required: true, message: '这是必填项', trigger: 'blur' },
            { type: 'email', message: '请输入正确的邮箱地址'},
            { type: 'date', required: true, message: '请选择日期'},//因为直接调用elementui的日期组件,就不存在格式不对一说啦
            { min: 3, max: 5, message: '长度在 3 到 5 个字符'}
            { type: 'number', message: '请输入数字'}            
          ]
}
4. 更多验证规则

看这里async-validator~

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Element UI 提供了一套强大的表单验证机制,可以帮助开发者快速实现表单验证功能。下面是一个简单的示例,演示如何使用 Element UI 进行表单验证: 首先,确保你已经安装了 Element UI,并在项目中正确引入了相关的样式和组件。 然后,在你的 Vue 组件中,使用 `<el-form>` 和 `<el-form-item>` 组件包裹你的表单元素,并在需要进行验证表单元素上添加 `prop` 属性指定该表单元素的唯一标识符。 接下来,通过添加规则对象,定义每个表单元素的验证规则。你可以通过 `rules` 属性传入一个对象,对象的键是表单元素的 `prop` 值,值是一个数组,数组中的每个对象表示一个验证规则。 最后,在提交表单时,可以通过调用 `<el-form>` 组件的 `validate` 方法来触发表单验证,如果验证通过,则执行相应的提交操作。 以下是一个示例代码: ```vue <template> <el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form-item label="用户名" prop="username"> <el-input v-model="form.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="form.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { username: '', password: '' }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 20, message: '用户名长度在 3 到 20 个字符', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 20, message: '密码长度在 6 到 20 个字符', trigger: 'blur' } ] } } }, methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 表单验证通过,执行提交操作 // ... } else { // 表单验证未通过 return false; } }); } } } </script> ``` 以上示例中,我们定义了一个包含用户名和密码的表单,为每个表单元素定义了相应的验证规则。在提交表单时,调用 `validate` 方法进行表单验证,如果验证通过,则可以执行提交操作。 这只是一个简单的示例,Element UI 还提供了更多的验证规则和自定义验证方法,可以根据具体需要进行配置。详细的文档可以参考 Element UI 官方文档中的表单验证部分。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值