当前位置:   article > 正文

vue3和ant-design-vue的<a-form>表单自定义规则校验封装_ant design vue form 正则验证封装

ant design vue form 正则验证封装
  1. <template>
  2. <div class="container">
  3. //使用ant-design-vue里面的rules属性增加校验
  4. <a-form
  5. :model="formState"
  6. :label-col="labelCol"
  7. :wrapper-col="wrapperCol"
  8. ref="formRef"
  9. :rules="formRules"
  10. hideRequiredMark="true"
  11. :getContainer="() => $refs.formBox"
  12. >
  13. //a-form-item外面包裹 a-row 和 a-col 是为了利用其调整每个表单元素的距离
  14. <a-row>
  15. <a-col :span="22">
  16. <a-form-item
  17. label="名字"
  18. :wrapper-col="{ span: 18 }"
  19. name="name"
  20. >
  21. <a-input v-model:value="formState.name" />
  22. </a-form-item>
  23. </a-col>
  24. </a-row>
  25. <a-row>
  26. <a-col :span="22">
  27. <a-form-item
  28. label="年龄"
  29. :wrapper-col="{ span: 18 }"
  30. name="age"
  31. >
  32. <a-input v-model:value="formState.age" type="textarea" />
  33. </a-form-item>
  34. </a-col>
  35. </a-row>
  36. </a-form>
  37. </div>
  38. </template>
  39. <script setup>
  40. improt {ref,reactive} from 'vue'
  41. //引入封装的自定义校验js文件
  42. import {validateName,validateAge} from './rules'
  43. const formState = reactive({
  44. name:'',
  45. age: "",
  46. });
  47. const formRules = {
  48. name:[
  49. {
  50. //validator 自定义校验
  51. validator:validateName,
  52. trigger:'change'
  53. }
  54. ],
  55. age:[
  56. {
  57. validator:validateAge,
  58. trigger:'change'
  59. }
  60. ]
  61. }
  62. </script>
  63. //rule.js 自定义校验封装的文件
  64. export async function validateAge(rule,value) {
  65. let three = /^[0-9.,-]+$/;
  66. if (value == "") {
  67. return Promise.reject("请输入必填项");//返回错误校验提示
  68. } else if (!three.test(value)) {
  69. return Promise.reject("不能输入非数字");
  70. }
  71. else {
  72. return Promise.resolve()//正确校验通过
  73. }
  74. }
  75. export async function validateName(rule,value) {
  76. if(value == '') {
  77. return Promise.reject('请输入必填项')
  78. }else {
  79. return Promise.resolve()
  80. }
  81. }

希望可以帮到大家,有问题欢迎私信评论共同探讨

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号