赞
踩
- <template>
-
- <div class="container">
-
- //使用ant-design-vue里面的rules属性增加校验
- <a-form
- :model="formState"
- :label-col="labelCol"
- :wrapper-col="wrapperCol"
- ref="formRef"
- :rules="formRules"
- hideRequiredMark="true"
- :getContainer="() => $refs.formBox"
- >
- //a-form-item外面包裹 a-row 和 a-col 是为了利用其调整每个表单元素的距离
- <a-row>
- <a-col :span="22">
- <a-form-item
- label="名字"
- :wrapper-col="{ span: 18 }"
- name="name"
- >
- <a-input v-model:value="formState.name" />
- </a-form-item>
- </a-col>
- </a-row>
-
- <a-row>
- <a-col :span="22">
- <a-form-item
- label="年龄"
- :wrapper-col="{ span: 18 }"
- name="age"
- >
- <a-input v-model:value="formState.age" type="textarea" />
- </a-form-item>
- </a-col>
- </a-row>
-
- </a-form>
-
- </div>
-
- </template>
-
-
- <script setup>
- improt {ref,reactive} from 'vue'
- //引入封装的自定义校验js文件
- import {validateName,validateAge} from './rules'
- const formState = reactive({
- name:'',
- age: "",
-
- });
- const formRules = {
- name:[
- {
- //validator 自定义校验
- validator:validateName,
- trigger:'change'
- }
- ],
- age:[
- {
- validator:validateAge,
- trigger:'change'
- }
- ]
- }
-
- </script>
-
-
-
-
-
- //rule.js 自定义校验封装的文件
- export async function validateAge(rule,value) {
- let three = /^[0-9.,-]+$/;
- if (value == "") {
- return Promise.reject("请输入必填项");//返回错误校验提示
- } else if (!three.test(value)) {
- return Promise.reject("不能输入非数字");
- }
- else {
- return Promise.resolve()//正确校验通过
- }
- }
- export async function validateName(rule,value) {
- if(value == '') {
- return Promise.reject('请输入必填项')
- }else {
- return Promise.resolve()
- }
- }
-
-
-

希望可以帮到大家,有问题欢迎私信评论共同探讨
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。