返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue使用rules实现表单字段验证
  • 572
分享到

vue使用rules实现表单字段验证

2024-04-02 19:04:59 572人浏览 泡泡鱼
摘要

Vue中表单字段验证的写法和方式有多种,本博客介绍三种较为常用的验证方式。 1. 写在 data 中验证 表单内容 <!-- 表单 --> <el-fORM r

Vue中表单字段验证的写法和方式有多种,本博客介绍三种较为常用的验证方式。

1. 写在 data 中验证

表单内容


<!-- 表单 -->
<el-fORM ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
    <el-form-item label="用户名称:" prop="userName">
       <el-input v-model="rulesForm.userName" style="width:300px" maxlength="50"/>
    </el-form-item>
</el-form>
  • <el-form>:代表这是一个表单
  • <el-form> -> ref:表单被引用时的名称,标识
  • <el-form> -> rules:表单验证规则
  • <el-form> -> model:表单数据对象
  • <el-form> -> label-width:表单域标签的宽度,作为 Form 直接子元素的 form-item 会继承该值
  • <el-form> -> <el-form-item>:表单中的每一项子元素
  • <el-form-item> -> label:标签文本
  • <el-form-item> -> prop:表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的
  • <el-input>:输入框
  • <el-input> -> v-model:绑定的表单数据对象属性
  • <el-input> -> style:行内样式
  • <el-input> -> maxlength:最大字符长度限制

data 数据


data() {
    return {
        // 省略别的数据定义
        ...
        
        // 表单验证
        formRules: {
            userName: [
                {required: true,message: "请输入用户名称",trigger: "blur"}
            ]
        }
    }
}
  • formRules:与上文  '表单内容' 中 <el-form> 表单的 :rules 属性值相同
  • userName:与上文 '表单内容' 中 <el-form-item> 表单子元素的 prop 属性值相同
  • 验证内容是:必填,失去焦点时验证,如果为空,提示信息为 '请输入用户名称'

2. 写在行内

表单内容


<!-- 表单 -->
<el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
    <el-form-item label="银行名称:" prop="accountName" :rules="[{required:true,message:'请输入银行名称',trigger:'blur'}]">
        <el-input v-model="rulesForm.accountName" style="width:300px" maxlength="50"/>
    </el-form-item>
</el-form>
  • <el-form-item> -> rules:和第一种方式表现的效果一致,只是写法不一样,这里不再赘述

data 数据没有内容

3. 引入外部定义的规则

表单内容


<!-- 表单 -->
<el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
    <el-form-item label="银行卡号:" prop="accountNumber">
       <el-input v-model="rulesForm.accountNumber" style="width:300px" maxlength="19"/>
    </el-form-item>
</el-form>

表单内容与第一种方式写法一致,这里不再赘述

script 内容


<script>
// 引入了外部的验证规则
import { validateAccountNumber } from "@/utils/validate";
 
// 判断银行卡账户是否正确
const validatorAccountNumber = (rule, value, callback) => {
  if (!value) {
    return callback(new Error("请输入账户信息"));
  } else {
    if (validateAccountNumber(value)) {
      callback();
    } else {
      return callback(new Error('账号格式不正确'))
    }
  }
};
 
export default {
    data() {
        return {
            // 省略别的数据定义
            ...
        
            // 表单验证
            formRules: {
                accountNumber: [
                    {required: true,validator: validatorAccountNumber,trigger: "blur"}
                ]
            }
        }
    }
}
</script>
  • import:先引入了外部的验证规则
  • const:定义一个规则常量,常量名可变, '= (rule, value, callback) => {}' 为固定格式,value 入参为验证的字段值
  • formRules -> accountNumber:表单验证中使用 validator 指定自定义校验规则常量名称

validate.js



export function validateAccountNumber(str) {
  const reg = /^([1-9]{1})(\d{14}|\d{18})$/
  return reg.test(str)
}
  • 验证规则

以上都是在失去焦点时的验证,下面来分析一下如何在表单提交时验证

1. 表单的提交按钮


<!-- 表单 -->
<el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
    <el-form-item>
        <el-button type="primary" @click="onSubmit('rulesForm')">保存</el-button>
        <el-button @click="cancel">取消</el-button>
    </el-form-item>
</el-form>
  • <el-button>:按钮
  • <el-button> -> type:按钮类型
  • <el-button> -> @click:按钮点击时触发的事件,这里注意方法的入参为 'rulesForm',这里要与 <el-form> 表单的 rel 属性值一致

2. methods 方法


methods: {
    // 保存
    onSubmit(formName) {
        this.$refs[formName].validate(valid => {
            if (valid) {
                console.log("success submit!!");
            }else{
                console.log("error submit!!");
            }
        });
    },
    // 取消
    cancel() {
        
    }
}

this.$refs[formName].validate:formName 就是传入的 'rulesForm',与 <el-form> 表单的 rel 属性值一致,这样就指定好需要验证的表单了

完整示例代码如下

1. rules.vue


<template>
  <div class="app-container">
    <el-tabs v-model="activeName">
      <el-tab-pane label="表单" name="rulesPane" @tab-click="handleClick">
        <!-- 表单 -->
        <el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
          <el-form-item label="用户名称:" prop="userName">
            <el-input v-model="rulesForm.userName" style="width:300px" maxlength="50"/>
          </el-form-item>
          <el-form-item label="银行名称:" prop="accountName" :rules="[{required:true,message:'请输入银行名称',trigger:'blur'}]">
            <el-input v-model="rulesForm.accountName" style="width:300px" maxlength="50"/>
          </el-form-item>
          <el-form-item label="银行卡号:" prop="accountNumber">
            <el-input v-model="rulesForm.accountNumber" style="width:300px" maxlength="50"/>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit('rulesForm')">保存</el-button>
            <el-button @click="cancel">取消</el-button>
          </el-form-item>
        </el-form>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
 
<script>
import { validateAccountNumber } from "@/utils/validate";
 
// 判断银行卡账户是否正确
const validatorAccountNumber = (rule, value, callback) => {
  if (!value) {
    return callback(new Error("请输入账户信息"));
  } else {
    if (validateAccountNumber(value)) {
      callback();
    } else {
      return callback(new Error('账号格式不正确'))
    }
  }
};
 
export default {
  name: "rules",
  data() {
    return {
      activeName: "rulesPane",
      defaultProps: {
        children: "children",
        label: "label"
      },
      rulesForm: {
      },
      //   表单验证
      formRules: {
        userName: [
          {
            required: true,
            message: "请输入用户名称",
            trigger: "blur"
          }
        ],
        accountNumber: [
          {
            required: true,
            validator: validatorAccountNumber,
            trigger: "blur"
          }
        ],
      }
    };
  },
  created() {},
  mounted() {},
  methods: {
    handleClick(tab) {
      
    },
    // 取消
    cancel() {
      
    },
    // 保存
    onSubmit(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          console.log("success submit!!");
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    }
  }
};
</script>
 
<style lang="sCSS">
</style>

2. validate.js



export function validateAccountNumber(str) {
  const reg = /^([1-9]{1})(\d{14}|\d{18})$/
  return reg.test(str)
}

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue使用rules实现表单字段验证

本文链接: https://lsjlt.com/news/133604.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue使用rules实现表单字段验证
    vue中表单字段验证的写法和方式有多种,本博客介绍三种较为常用的验证方式。 1. 写在 data 中验证 表单内容 <!-- 表单 --> <el-form r...
    99+
    2024-04-02
  • 在vue中使用rules对表单字段进行验证方式
    目录1. 写在 data 中验证表单内容data 数据2. 写在行内表单内容3. 引入外部定义的规则vue 中表单字段验证的写法和方式有多种,本篇文章介绍三种较为常用的验证方式。 1...
    99+
    2024-04-02
  • vue中的rules表单验证怎么实现
    这篇文章主要介绍“vue中的rules表单验证怎么实现”,在日常操作中,相信很多人在vue中的rules表单验证怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的rules表单验证怎么实现”的疑...
    99+
    2023-07-02
  • vue表单验证rules及validator验证器如何使用
    这篇文章主要介绍“vue表单验证rules及validator验证器如何使用”,在日常操作中,相信很多人在vue表单验证rules及validator验证器如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-02
  • vue表单验证rules及validator验证器的使用方法实例
    目录前言表单验证rules自定义校验规则总结前言 为防止用户犯错,尽可能更早地发现并纠正错误。 Element中Form (表单)组件提供了表单验证的功能,只需要通过 rules 属...
    99+
    2024-04-02
  • vue实现表单单独移除一个字段验证
    本文实例为大家分享了vue实现表单单独移除一个字段验证的具体代码,供大家参考,具体内容如下 下面的代码以登录功能为例。 功能描述: 用户输入密码时,失去焦点进行密码校验,当输入有误时...
    99+
    2024-04-02
  • 详谈vue中的rules表单验证(常用)
    目录首先在表单中绑定rules并在item中定义属性prop在data或computed中编写rules规则其中name为prop名也可以直接用pattern进行匹配验证前端Vue中...
    99+
    2024-04-02
  • 怎么使用vue实现表单验证功能
    这篇文章主要讲解了“怎么使用vue实现表单验证功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用vue实现表单验证功能”吧!具体代码如下:<!DOCTYPE html...
    99+
    2023-07-04
  • vue实现表单验证功能
    本篇主要讲述如何基于NUXT的validate方法实现表单的验证。 将验证方法封装后,使用的时候只需像:rules="filter_rules({required:true,type...
    99+
    2024-04-02
  • vue2.0+ele如何实现循环表单及验证字段
    小编给大家分享一下vue2.0+ele如何实现循环表单及验证字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html代码<...
    99+
    2024-04-02
  • vue实现表单验证小功能
    本文实例为大家分享了vue实现表单验证的具体代码,供大家参考,具体内容如下 1.路由跳转 先点开Vue项目中src目录配置router文件然后用import暴露你的表单页名称并在你的...
    99+
    2024-04-02
  • Flask wtforms实现表单验证使用
    目录wtforms 使用1(简单版): 使用2(复杂版): wtforms 安装:pip3 install wtforms 使用1(简单版): from flask impo...
    99+
    2024-04-02
  • vue如何实现表单数据验证
    这篇文章主要讲解了“vue如何实现表单数据验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现表单数据验证”吧!为el-form表单添加:rul...
    99+
    2024-04-02
  • Vue from-validate如何实现表单验证
    这篇文章给大家分享的是有关Vue from-validate如何实现表单验证的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。知识准备vue的自定义指令具体可以看官方手册,连接如下:...
    99+
    2024-04-02
  • vue+vue-validator如何实现表单验证功能
    这篇文章主要为大家展示了“vue+vue-validator如何实现表单验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue+vue-validator...
    99+
    2024-04-02
  • vue+vue validator怎么实现表单验证功能
    今天小编给大家分享一下vue+vue validator怎么实现表单验证功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所...
    99+
    2024-04-02
  • 如何使用JavaScript实现表单验证
    本篇内容介绍了“如何使用JavaScript实现表单验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、...
    99+
    2024-04-02
  • 怎么使用HTML5实现表单验证
    这篇文章主要介绍“怎么使用HTML5实现表单验证”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用HTML5实现表单验证”文章能帮助大家解决问题。 HTML5...
    99+
    2024-04-02
  • jQuery实现表单验证
    使用jQuery实现表单验证,供大家参考,具体内容如下 register.html <!DOCTYPE html> <html lang="en"> &l...
    99+
    2024-04-02
  • JavaScript实现表单验证
    目录一、JavaScript 表单验证1、数据验证2、约束验证1、约束验证 HTML 输入属性2、约束验证 CSS 伪类选择器二、JavaScript 验证 API1、checkVa...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作