首页 > 其他分享 >element表单校验

element表单校验

时间:2023-06-14 09:35:27浏览次数:30  
标签:min max 校验 value 表单 callback trigger element

通过一个案例来示意:element的表单校验

html部分:

 

<template>
  <div id="app">
    <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
    <!-- 设置prop属性 (校验谁写谁的字段 ) -->
      <el-form-item label="密码" prop="pass">
        <el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="数字" prop="num">
        <el-input type="text" v-model="ruleForm.num" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="年龄" prop="age">
        <el-input v-model.number="ruleForm.age"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </el-form-item>
  </el-form>
  </div>
</template>

js 部分:

export default {
  
    data(){
    var quYu = (rule, value, callback) => { // 数字校验
      if (value.length == 0) {
        return callback(new Error("数值不能为空,没有请填0"));
      }
      if (value < 0) {
        return callback(new Error("数值不能为负数"));
      }
      if (!(/^[-+]?\d+$/).test(value)) {
        return callback(new Error("请输入正整数或0"));
      }
      if (value.length > 9) {
        callback(new Error("数值长度不能超过9个字符"));
      } else {
        callback();
      }
    };
      return {
        ruleForm:{ // 先在data中定义el-form 中model绑定的值
          pass:'',
          num:'',
          age:''
        },
        rules: { // 进行表单校验
/*        
            required    如果为true,表示该字段为必填
            message    当不满足设置的规则时的提示信息
            pattern    正则表达式,通过正则验证值
            min    当值为字符串时,min表示字符串的最小长度,当值为数字时,min表示数字的最小值
            max    当值为字符串时,max表示字符串的最大长度,当值为数字时,max表示数字的最大值
            trigger    校验的触发方式,change(值改变) / blur (失去焦点)两种,
            validator    如果配置型的校验规则不满足你的需求,你可以通过自定义函数来完成校验
            validator是一个函数, 其中有三个参数 (rule(当前规则),value(当前值),callback(回调函数))
 */
          pass: [
            { required: true, message: '请输入密码', trigger: 'blur' },
            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
          ],
          num: [
            {validator:quYu, trigger: 'change' }
            // validator自定义校验的规则
          ],
          age: [
            { type: 'date', required: true, message: '年龄', trigger: 'blur' },
            { pattern: /^([0]|[1-9][0-9]*)$/, message: "请输入0或正整数", trigger: ['blur', 'change'] } 
            // pattern通过正则表达式验证值
          ],
        }
      }
    },
 
};

表单校验的相关属性:

required 如果为true,表示该字段为必填

message 当不满足设置的规则时的提示信息

pattern 正则表达式,通过正则验证值

min 当值为字符串时,min表示字符串的最小长度,当值为数字时,min表示数字的最小值

max 当值为字符串时,max表示字符串的最大长度,当值为数字时,max表示数字的最大值

trigger 校验的触发方式,change(值改变) / blur (失去焦点)两种,

validator 如果配置型的校验规则不满足你的需求,你可以通过自定义函数来完成校验

validator是一个函数, 其中有三个参数 (rule(当前规则),value(当前值),callback(回调函数))
————————————————
版权声明:本文为CSDN博主「逆风优雅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44603011/article/details/125739696

标签:min,max,校验,value,表单,callback,trigger,element
From: https://www.cnblogs.com/chenzhengyang/p/17479249.html

相关文章

  • m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:对比matlab结果:2.算法涉及理论知识概要CRC(CyclicR......
  • m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
    1.算法仿真效果本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:   Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  对比matlab结果:  2......
  • AntDesign自定义校验表单
    <a-rowclass="row":gutter="32"><a-col:span="16"><a-form-itemlabel="场景模板标签"name="tags"><a-......
  • vue2.0中使用element-ui时报错
    1、重新安装依赖a)  yarnaddbabel-preset-es2015--devb)  npminstallbabel-preset-es2015-D2、修改babel.config.js配置module.exports={ presets:['@vue/cli-plugin-babel/preset',['@babel/preset-env',{modules:false}]], ......
  • 在使用VScode编辑器vue开发过程中,v-for在Eslint的规则检查下出现报错:Elements in iter
    报错如下: 该怎么解决呢?现在说说解决他的两种方法:1.直接在v-for循环后面绑定一个属性,跟前面需要循环的属性一一对应,截图如下:  2.在vscode中去掉Eslint规则检查,具体操作截图如下:文件–》首选项–》设置–》在搜索框中输入:vetur.validation.template,找到之后将前面的打钩......
  • 自定义组件触发element-ui el-form 校验
    项目使用element-ui中的el-form进行表单校验,表单中含有上传组件,当校验时机设置change时,实际值已经改变,但没有触发校验。看一下el-select的源码是怎么写的,在watch监听里当value改变时,有这么一段代码this.dispatch('ElFormItem','el.form.change',val);可以引入dispatch函......
  • 入参校验1
    文章目录一、简介1、快速失败(FailFast)二、单字段类入参校验三、JSON实体类校验1、注解解析2、案例1、简单校验2、分组校验3、嵌套校验4、集合校验5、自定义校验四、相关1、源码文件2、参考地址一、简介1、快速失败(FailFast)SpringValidation默认会校验完所有字段,然后才抛......
  • ElementUIplus --- el-menu 菜单折叠的情况下 二级菜单选中 一级菜单lcon 高亮 样式设
    submenu部分代码示例<template><templatev-for="(item,index)inprops.children":key="index"><el-sub-menuv-if="!item.meta.hidden&&item.children":index="item.name"><templat......
  • Hibernate数据校验简介
    Hibernate数据校验简介我们在业务中经常会遇到参数校验问题,比如前端参数校验、Kafka消息参数校验等,如果业务逻辑比较复杂,各种实体比较多的时候,我们通过代码对这些数据一一校验,会出现大量的重复代码以及和主要业务无关的逻辑。SpringMVC提供了参数校验机制,但是其底层还是通过Hib......
  • elementui弹窗每次更新
    如下,他俩一起使用:visible.sync="dialogVisible"v-if="dialogVisible"其他关键地方如图:编辑或者新增的时候只需修改rowData的值即可实现数据变更,......