ElementUI点击按钮单独校验某个表单元素

10 篇文章 0 订阅

ElementUI点击按钮单独校验某个表单元素

应用场景:注册时,未输入手机号就点击【获取验证码】,此时应单独校验手机号对应的表单。
提示:validateField(‘需要单独校验的表单项规则’)

以下为HTML代码块:

<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" >
<el-form-item label="手机号" prop="account">
      <el-input v-model="ruleForm.account" clearable></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
      <el-input
                v-model="ruleForm.password"
                type="password"
                clearable=""
              ></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="cfmPwd">
              <el-input
                v-model="ruleForm.cfmPwd"
                type="password"
                clearable=""
              ></el-input>
</el-form-item>
<el-form-item label="验证码" prop="verificationCode">
              <el-input
                v-model="ruleForm.verificationCode"
                type="password"
                clearable=""
              ></el-input>
              <el-button type="primary" @click="postSms"
                >获取验证码</el-button
              >
            </el-form-item>
</el-form>

以下为JS代码块

<script>
export default {
  data() {
    var confirmPwd = (rule, value, callback) => {
      if (value !== this.ruleForm.password) {
        callback(new Error("两次输入的密码不一致"));
      }
    };
    return {
      ruleForm: {  // 表单数据
        account: "", // 手机号
        password: "", // 密码
        cfmPwd: "", // 确认密码
        verificationCode: "", // 验证码
      },
      rules: {  // 校验规则
        account: [
          { required: true, message: "请输入手机号", trigger: "blur" },
          {
            min: 11,
            max: 11,
            message: "手机号长度为11位",
            trigger: "blur",
          },
        ],
        password: [
          { required: true, message: "请输入密码", trigger: "blur" },
          {
            min: 8,
            max: 18,
            message: "长度在 8 到 18 个字符",
            trigger: "blur",
          },
        ],
        cfmPwd: [
          {
            required: true,
            message: "请再次确认密码",
            trigger: "blur",
          },
          {
            min: 8,
            max: 18,
            message: "长度在 8 到 18 个字符",
            trigger: "blur",
          },
          {
            validator: confirmPwd,
            trigger: "blur",
          },
        ],
      },
    };
  },
  methods: {
    /**
     * 获取验证码
     */
    postSms() {
      this.$refs["ruleForm"].validateField("account");   // 此行单独校验form表单下的手机号表单项
    },
  }
};
</script>

以上内容均为原创,如有不足,还请指教

ElementUI提供了多种方法来实现多个表单校验。其中,你可以使用v-for循环来动态生成表单,并通过ref属性绑定表单实例。通过$refs可以获取到一个表单实例的数组。在校验方面,ElementUI提供了rules属性来定义校验规则,并结合validate方法进行验证。 以下是一个示例代码,演示了如何使用ElementUI进行多个表单校验: ```html <template> <div> <el-form ref="form" :model="formData" :rules="rules" label-width="100px"> <el-form-item v-for="(item, index) in formData" :label="'表单' + (index + 1)" :key="index"> <el-input v-model="item.value"></el-input> </el-form-item> <el-button type="primary" @click="validateForm">校验</el-button> </el-form> </div> </template> <script> export default { data() { return { formData: [ { value: '' }, { value: '' }, { value: '' } ], rules: { // 定义校验规则 // 例如,这里假设每个表单都不能为空 // 这里的 rule 是一个数组,可以定义多个规则 // 更多校验规则的使用方法可以参考 ElementUI 官方文档 // https://element.eleme.cn/#/zh-CN/component/form#biao-dan-yan-zheng rule: [ { required: true, message: '该项不能为空', trigger: 'blur' } ] } } }, methods: { validateForm() { this.$refs.form.validate((valid) => { if (valid) { // 表单校验通过的逻辑 console.log('校验通过') } else { // 表单校验不通过的逻辑 console.log('校验不通过') } }) } } } </script> ``` 在上述代码中,通过v-for循环生成了多个表单项,并将每个表单项的值绑定到formData数组中对应的元素上。rules属性定义了校验规则,这里假设每个表单项都不能为空。validateForm方法用于触发表单校验操作,通过this.$refs.form.validate()方法对表单进行校验校验结果通过valid参数返回。如果校验通过,则执行校验通过的逻辑;如果校验不通过,则执行校验不通过的逻辑。 以上就是使用ElementUI进行多个表单校验的方法。希望能对你有所帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值