ant a-from 校验

方法一:

使用pattern对对数据进行正则校验

优点:不用做清空处理,不符合规则的会有拦截,不能提交表单。

缺点:不能做多重判断,给予不同提示。

<a-form :label-col="{ span: 3 }" :wrapper-col="{ span: 20 }"  @submit="handleSubmit" :form="form" layout="vertical" 							:hideRequiredMark="hideRequiredMark">
                 <a-form-item label="用电户号:">
                    <a-input style="height:40px;"
                    :maxLength="13"
                    v-decorator="[
                        'accountNo',
                        {rules: [{ required: true,pattern: new RegExp(/^\d{13}$/), message: '用电户号必须为13位数字' }]}
                        ]" placeholder="请输入用电户号"/>
                </a-form-item>
         </a-form>

方法二:

失去焦点时使用this.form.setFields 对多重校验给予相应文字提示 。

优点:可以多重判断给予不同文案提示。

缺点:不符合规则的如果不对输入框的值做清空处理,会绕过判断直接提交错误信息。

<a-form :label-col="{ span: 3 }" :wrapper-col="{ span: 20 }"  @submit="handleSubmit" :form="form" layout="vertical" 							:hideRequiredMark="hideRequiredMark">
      <a-form-item label="用电户号:">
          <a-input style="height:40px;"
                   @blur="changeValue"
                   :maxLength="13"
                   v-decorator="[
                                'accountNo',
                                {rules: [{ required: true, message: '用电户号必须为13位数字' }]}
                                ]" placeholder="请输入用电户号"/>
      </a-form-item>
</a-form>
  changeValue(e) {
        let reg=/^\d{13}$/
      if (e.target.value && !reg.test(e.target.value)) {
        // 此处field须对应
        const arr = [
          {
            message: "请输入正确的用电户号",
            field: "legalIdCard"
          }
        ];
        this.form.setFields({
          legalIdCard: { value:'', errors: arr }//值清空
        });
      }
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是在Vue 3中使用Ant Design Vue进行表单校验的示例: ```vue <template> <a-modal v-model:visible="modalVisible" title="表单校验示例"> <a-form :form="form" @submit="handleSubmit"> <a-form-item label="用户名" name="username" :rules="[{ required: true, message: '请输入用户名' }]"> <a-input v-model:value="form.username" /> </a-form-item> <a-form-item label="密码" name="password" :rules="[{ required: true, message: '请输入密码' }]"> <a-input-password v-model:value="form.password" /> </a-form-item> <a-form-item> <a-button type="primary" html-type="submit">提交</a-button> </a-form-item> </a-form> </a-modal> </template> <script> import { ref } from 'vue'; import { AModal, AForm, AFormItem, AInput, AInputPassword, AButton } from 'ant-design-vue'; export default { components: { AModal, AForm, AFormItem, AInput, AInputPassword, AButton, }, setup() { const form = ref(null); const modalVisible = ref(false); const handleSubmit = () => { form.value.validateFields((errors, values) => { if (!errors) { // 表单校验通过,执行提交逻辑 console.log(values); modalVisible.value = false; } }); }; return { form, modalVisible, handleSubmit, }; }, }; </script> ``` 在上述示例中,我们使用了Ant Design Vue的`AForm`、`AFormItem`、`AInput`、`AInputPassword`和`AButton`组件来构建表单。通过在`AFormItem`组件上设置`rules`属性,我们可以定义表单项的校验规则。在提交表单时,我们使用`validateFields`方法来进行表单校验,如果校验通过,则执行提交逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值