el-form自定义校验规则

Vue 的 el-form 组件可以使用自定义校验规则进行表单验证。自定义校验规则可以通过传递一个函数来实现,该函数接受要校验的字段的值作为参数,并返回一个布尔值或一个 Promise 对象。

下面是一个示例,演示如何在 el-form 中使用自定义校验规则:


   
   
    
    
  1. <template>
  2.   <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  3.     <el-form-item label="用户名" prop="username" :rules="usernameRules">
  4.       <el-input v-model="form.username"> </el-input>
  5.     </el-form-item>
  6.     <el-form-item>
  7.       <el-button type="primary" @click="submitForm">提交 </el-button>
  8.       <el-button @click="resetForm">重置 </el-button>
  9.     </el-form-item>
  10.   </el-form>
  11. </template>
  12. <script>
  13. export default {
  14.   data( ) {
  15.     return {
  16.       form: {
  17.         username: ''
  18.       },
  19.       rules: {
  20.         username: [
  21.           { required: true, message: '请输入用户名', trigger: 'blur' }
  22.         ]
  23.       }
  24.     };
  25.   },
  26.   methods: {
  27.     submitForm( ) {
  28.       this. $refs. form. validate( valid => {
  29.         if (valid) {
  30.           // 表单验证通过,提交表单
  31.           console. log( '提交表单');
  32.         } else {
  33.           // 表单验证失败,打印错误信息
  34.           console. log( '表单验证失败');
  35.           return false;
  36.         }
  37.       });
  38.     },
  39.     resetForm( ) {
  40.       this. $refs. form. resetFields();
  41.     }
  42.   },
  43.   computed: {
  44.     usernameRules( ) {
  45.       return [
  46.         { required: true, message: '请输入用户名', trigger: 'blur' },
  47.         { validator: this. validateUsername, trigger: 'blur' }
  48.       ];
  49.     }
  50.   },
  51.   methods: {
  52.     validateUsername( rule, value, callback) {
  53.       // 自定义校验规则
  54.       if (value === 'admin') {
  55.         callback( new Error( '用户名已存在'));
  56.       } else {
  57.         callback();
  58.       }
  59.     }
  60.   }
  61. };
  62. </script>

在上述例子中,我们定义了一个表单项 "用户名",并给它设置了两个校验规则,一个是必填规则,一个是自定义规则。自定义规则通过 `validator` 属性指向一个函数,该函数会在校验时调用。函数接受三个参数:`rule` 表示当前字段的验证规则,`value` 表示当前字段的值,`callback` 用来返回校验结果。当校验不通过时,通过调用 `callback` 函数并传递错误消息来报告校验失败。

这只是一个简单的例子,你可以根据你的具体需求来定义更复杂的自定义校验规则。

Vue 的 el-form 组件可以使用自定义校验规则进行表单验证。自定义校验规则可以通过传递一个函数来实现,该函数接受要校验的字段的值作为参数,并返回一个布尔值或一个 Promise 对象。

下面是一个示例,演示如何在 el-form 中使用自定义校验规则:


   
   
  
  
  1. <template>
  2.   <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  3.     <el-form-item label="用户名" prop="username" :rules="usernameRules">
  4.       <el-input v-model="form.username"> </el-input>
  5.     </el-form-item>
  6.     <el-form-item>
  7.       <el-button type="primary" @click="submitForm">提交 </el-button>
  8.       <el-button @click="resetForm">重置 </el-button>
  9.     </el-form-item>
  10.   </el-form>
  11. </template>
  12. <script>
  13. export default {
  14.   data( ) {
  15.     return {
  16.       form: {
  17.         username: ''
  18.       },
  19.       rules: {
  20.         username: [
  21.           { required: true, message: '请输入用户名', trigger: 'blur' }
  22.         ]
  23.       }
  24.     };
  25.   },
  26.   methods: {
  27.     submitForm( ) {
  28.       this. $refs. form. validate( valid => {
  29.         if (valid) {
  30.           // 表单验证通过,提交表单
  31.           console. log( '提交表单');
  32.         } else {
  33.           // 表单验证失败,打印错误信息
  34.           console. log( '表单验证失败');
  35.           return false;
  36.         }
  37.       });
  38.     },
  39.     resetForm( ) {
  40.       this. $refs. form. resetFields();
  41.     }
  42.   },
  43.   computed: {
  44.     usernameRules( ) {
  45.       return [
  46.         { required: true, message: '请输入用户名', trigger: 'blur' },
  47.         { validator: this. validateUsername, trigger: 'blur' }
  48.       ];
  49.     }
  50.   },
  51.   methods: {
  52.     validateUsername( rule, value, callback) {
  53.       // 自定义校验规则
  54.       if (value === 'admin') {
  55.         callback( new Error( '用户名已存在'));
  56.       } else {
  57.         callback();
  58.       }
  59.     }
  60.   }
  61. };
  62. </script>

在上述例子中,我们定义了一个表单项 "用户名",并给它设置了两个校验规则,一个是必填规则,一个是自定义规则。自定义规则通过 `validator` 属性指向一个函数,该函数会在校验时调用。函数接受三个参数:`rule` 表示当前字段的验证规则,`value` 表示当前字段的值,`callback` 用来返回校验结果。当校验不通过时,通过调用 `callback` 函数并传递错误消息来报告校验失败。

这只是一个简单的例子,你可以根据你的具体需求来定义更复杂的自定义校验规则。

猜你喜欢

转载自blog.csdn.net/m0_71349739/article/details/132316204