当前位置:   article > 正文

element表单校验-循环表单校验_element循环表单校验

element循环表单校验

1. element表单校验在项目中很常见,基本用法大家可以参照官网。不过我边对基本使用做下强调和说明。

  1. <template>
  2. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  3. <el-form-item label="名称" prop="name">
  4. <el-input v-model="ruleForm.name"></el-input>
  5. </el-form-item>
  6. </el-form>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. ruleForm: {
  13. name: '',
  14. },
  15. rules: {
  16. name: [
  17. { required: true, message: '请输入活动名称', trigger: 'blur' },
  18. { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
  19. ]
  20. }
  21. };
  22. },
  23. }
  24. </script>

1. el-form-item 标签一定要加props,而且要和校验绑定的值一致,也就是 ruleForm 里面的值和 rules 里面绑定的校验名称要一致。而 props 可以理解为建立两者的连接。

2.只要保证 props 和 rules 里面相对应,它校验的值就是 ruleForm 的相对应的值,所以上述例子中的 <el-input v-model="ruleForm.name"></el-input>  可以是任何元素,除了表单元素之外,还可以是一个 div 文本等等。

  1. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  2. <el-form-item label="名称" prop="name">
  3. <div>{{ruleForm.name}}</div>
  4. </el-form-item>
  5. </el-form>

2. 循环表单校验

  1. <template>
  2. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  3. <div v-for="(item, index) in ruleForm.list" :key="index">
  4. <el-form-item label="名称" :prop="`list.${index}.name`" :rules="rules.name">
  5. <el-input v-model="item.name"></el-input>
  6. </el-form-item>
  7. </div>
  8. <el-form-item>
  9. <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
  10. <el-button @click="resetForm('ruleForm')">重置</el-button>
  11. </el-form-item>
  12. </el-form>
  13. </template>
  14. <script>
  15. export default {
  16. name: 'App',
  17. components: {
  18. },
  19. data() {
  20. return {
  21. ruleForm: {
  22. list: [
  23. { name: '' },
  24. { name: '' },
  25. { name: '' }
  26. ]
  27. },
  28. rules: {
  29. name: [
  30. { required: true, message: '请填写名称', trigger: 'change' },
  31. ],
  32. },
  33. }
  34. },
  35. methods: {
  36. submitForm(formName) {
  37. this.$refs[formName].validate((valid) => {
  38. if (valid) {
  39. alert('submit!');
  40. } else {
  41. console.log('error submit!!');
  42. return false;
  43. }
  44. });
  45. },
  46. resetForm(formName) {
  47. this.$refs[formName].resetFields();
  48. }
  49. }
  50. }
  51. </script>

注意:1.每个 el-form-item 都要加 rules,而 props采用 index的形式。

另外还有一种实现方法就是循环整个 form 表单,这样就可以每个表单单独做校验,就是我们的普通股用法,至于使用哪种方法,大家可以视业务场景而定。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/115774
推荐阅读
相关标签
  

闽ICP备14008679号