验证表单规则

本文详细介绍了Element-UI中表单验证的使用方法,包括各种验证规则如必填、邮箱格式、日期、数字等,并给出了Vue.js中设置验证规则的示例。通过`el-form`和`el-form-item`组件结合`v-model`和`rules`属性实现数据绑定和验证。此外,还展示了如何处理键盘事件以响应回车提交。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)、required:true               必输字段
(2)、remote:"remote-valid.jsp"   使用ajax方法调用remote-valid.jsp验证输入值
(3)、email:true                  必须输入正确格式的电子邮件
(4)、url:true                    必须输入正确格式的网址
(5)、date:true                   必须输入正确格式的日期,日期校验ie6出错,慎用
(6)、dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)、number:true                 必须输入合法的数字(负数,小数)
(8)、digits:true                 必须输入整数
(9)、creditcard:true             必须输入合法的信用卡号
(10)、equalTo:"#password"        输入值必须和#password相同
(11)、accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
(12)、maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
(13)、minlength:10               输入长度最小是10的字符串(汉字算一个字符)
(14)、rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)、range:[5,10]               输入值必须介于 5 和 10 之间
(16)、max:5                      输入值不能大于5
(17)、min:10                     输入值不能小于10

 1.Vue中设置对应的验证信息

 <!-- 表单验证
      el-form绑定
      model:绑定数据
      rules:验证规则
      ref='form'用于获取实例对象
      el-from-item
      prop='需要验证的字段名'
       -->
      <el-form ref="form" :model="form" :rules="rules">

 2.把数据绑定到对应的表单输入框

        <el-form-item prop="mobile">
        <el-input v-model="form.mobile"/>
        </el-form-item>

 3.书写校验的规则

  data() {
    return {
      form: {
        mobile: '13800000002',
        password: '123456'
      },
      rules: {
        //required.必填   message.提示信息   teigger 触发提示信息的方式
        mobile: [{ required: true, message: '请输入手机号', trigger: 'blur' },
          { min: 11, max: 11, message: '请输入11位手机号', trigger: 'burl' },
          // 自定义验证规则校验
          { validate: (rule, value, callback) => {
            // 正则校验规则
            // callback为空代表验证成功.否则提示错误信息
            const reg = '/^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/'
            if (reg.test(value)) {
              callback()
            } else {
              callback(new Error('请输入正确的手机号'))
            }
          } }],
        password: [{ required: true, message: '请输入密码', trigger: 'blur' }, {
          min: 6, max: 12, message: '请输入6-12位密码', trigger: 'blur'
        }]
      }
    }
  },
this.$refs.form.validate((value) => {
        if (value) {
    // 校验表单规则后.判断是否为true 
    // 满足条件后执行后续代码 
    // 例如发起axios请求等..
   }
}

在element-ui 里没有键盘事件.通过下面方法可以做到enter事件


 @keyup.enter.native="submit"

 //  native

<think>嗯,用户之前问过关于如何在Vue中使用`this.$refs.uForm.setRules`来阻止下一步操作的问题,现在他们又想知道uView验证表单规则的方法。我需要确定用户是否已经熟悉了基本的表单验证流程,还是需要更详细的uView特定方法。 首先,用户可能正在使用uView UI框架,因此需要明确uView的表单组件和其API。之前的回答提到了`setRules`和`validate`,但可能需要更针对uView的说明。用户可能在使用过程中遇到了问题,比如规则设置不正确或者验证不触发,需要具体的步骤和示例。 接下来,我需要回忆uView的文档,确保提供的代码示例和步骤准确。比如,uView的`u-form`组件可能需要特定的prop绑定,规则的结构可能有特定的字段,比如`required`、`message`、`trigger`等。同时,动态设置规则可能需要使用`setRules`方法,而验证则通过`validate`方法,这些都需要详细说明。 用户可能想知道如何定义规则、绑定表单、触发验证以及处理异步验证。另外,他们可能遇到常见问题,比如规则未生效或动态更新问题,需要给出排查方法。需要确保回答结构清晰,分步骤说明,并包含注意事项和示例代码。 还要注意用户可能对uView版本有不同,不同版本的API可能有差异,建议查阅对应版本的文档。同时,处理异步验证时可能需要使用Promise,这在之前的回答中提过,但需要再次强调。 总结,回答应包括规则定义、表单绑定、验证触发、动态规则设置、异步处理和常见问题排查。确保使用中文,代码示例正确,符合用户的需求,并帮助他们顺利实现表单验证。</think>以下是关于uView框架中表单验证规则的**核心方法及分步说明**: --- ### 一、基础规则定义 #### 1. 静态规则配置(推荐) 在Vue组件的`data`中定义验证规则: ```javascript data() { return { rules: { username: [ { required: true, message: '姓名不能为空', trigger: ['blur', 'change'] // 触发时机 }, { min: 2, max: 5, message: '姓名需2-5个字符', trigger: 'blur' } ], phone: [ { validator: (rule, value, callback) => { // 自定义验证函数 if (!/^1[3-9]\d{9}$/.test(value)) { callback(new Error('手机号格式错误')); } else { callback(); } }, trigger: 'blur' } ] } } } ``` --- ### 二、表单绑定与验证触发 #### 1. 模板结构 ```html <template> <u-form ref="uForm" :model="formData" :rules="rules" <!-- 绑定规则 --> :errorType="['toast']" <!-- 错误提示形式 --> > <u-form-item label="用户名" prop="username"> <u-input v-model="formData.username" /> </u-form-item> <u-form-item label="手机号" prop="phone"> <u-input v-model="formData.phone" /> </u-form-item> <u-button @click="submit">提交</u-button> </u-form> </template> ``` #### 2. 提交验证 ```javascript methods: { submit() { this.$refs.uForm.validate(valid => { if (valid) { console.log('验证通过,执行提交'); } else { console.log('验证失败,阻止操作'); } }); } } ``` --- ### 三、高级功能 #### 1. 动态修改规则 ```javascript // 通过setRules方法更新规则 this.$refs.uForm.setRules({ ...this.rules, password: [ // 新增字段规则 { required: true, message: '密码不能为空' } ] }); ``` #### 2. 部分验证 ```javascript // 验证单个字段 this.$refs.uForm.validateField('username', (errorMsg) => { if (!errorMsg) { console.log('用户名验证通过'); } }); // 验证多个字段 this.$refs.uForm.validateField(['username', 'phone']); ``` --- ### 四、特殊验证场景 #### 1. 异步验证 ```javascript rules: { email: [ { validator: (rule, value, callback) => { setTimeout(() => { if (!/@qq\.com$/.test(value)) { callback(new Error('只允许QQ邮箱')); } else { callback(); } }, 1000); }, trigger: 'blur' } ] } ``` #### 2. 联动验证 ```javascript // 当密码输入后触发确认密码验证 watch: { 'formData.password'(newVal) { if (newVal) { this.$refs.uForm.validateField('rePassword'); } } } ``` --- ### 五、常见问题排查 | 现象 | 解决方案 | |----------------------|---------------------------------| | 规则未生效 | 检查`prop`是否规则字段名完全一致 | | 动态规则不更新 | 使用`this.$nextTick(() => { this.$refs.uForm.setRules() })` | | 自定义验证不触发 | 确保`validator`函数内执行了`callback()` | | 错误提示样式异常 | 检查`errorType`参数是否配置正确 | --- ### 六、官方文档参考 建议结合uView官方文档使用(注意版本差异): - [uView 2.x 表单文档](https://www.uviewui.com/components/form.html) - [uView 3.x 表单文档](https://v3.uviewui.com/components/form.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值