ZBLOG

ant-desgin-vue里面form表单的身份证校验怎么实现

在 Ant Design Vue 中,可以使用表单的校验功能来实现身份证号的验证。可以通过自定义校验规则来完成这一任务。以下是一个示例,展示了如何在 a-form 组件中实现身份证号的校验。

示例代码

  1. <template>
  2. <a-form :form="form" @submit="handleSubmit">
  3. <a-form-item
  4. label="身份证号"
  5. :rules="[{
  6. required: true,
  7. message: '请输入身份证号',
  8. }, {
  9. validator: validateIdCard,
  10. }]"
  11. >
  12. <a-input v-model:value="formModal.ident" placeholder="请输入身份证号" />
  13. </a-form-item>
  14. <a-form-item>
  15. <a-button type="primary" html-type="submit">提交</a-button>
  16. </a-form-item>
  17. </a-form>
  18. </template>
  19. <script setup>
  20. import { ref } from 'vue';
  21. import { Form, Input, Button } from 'ant-design-vue';
  22. const form = ref(null);
  23. const formModal = ref({
  24. ident: ''
  25. });
  26. // 身份证号码校验函数
  27. const validateIdCard = (_, value) => {
  28. const regExp = /^(?:\d{15}|\d{17}[\dX])$/;
  29. if (!value) {
  30. return Promise.reject(new Error('请输入有效的身份证号'));
  31. }
  32. if (!regExp.test(value)) {
  33. return Promise.reject(new Error('请输入有效的身份证号'));
  34. }
  35. return Promise.resolve();
  36. };
  37. const handleSubmit = async () => {
  38. try {
  39. const values = await form.value.validateFields();
  40. console.log('表单值:', values);
  41. // 在这里处理表单提交逻辑
  42. } catch (error) {
  43. console.log('校验失败:', error);
  44. }
  45. };
  46. </script>
  47. <style scoped>
  48. /* 可以添加样式以改善UI */
  49. </style>

功能说明:

  1. 表单创建

    • 使用 a-form 创建一个表单,并绑定到 form 引用。
  2. 输入框与双向绑定

    • 使用 v-model:value 双向绑定 formModal.ident,用于接收和显示用户输入的身份证号。
  3. 自定义校验规则

    • rules 数组中,第一个规则确保该字段是必填的。
    • 第二个规则使用自定义函数 validateIdCard 来进行格式检查。
  4. 身份号码校验

    • validateIdCard 函数中,使用正则表达式检查输入是否为合法的身份证号码格式。
    • 如果不合法,则返回一个拒绝的 Promise,并提供错误消息;如果合法,则返回解析成功的 Promise。
  5. 提交处理

    • handleSubmit 函数中调用 validateFields() 方法进行所有字段验证,并输出有效的数据或错误信息。

总结

这个示例展示了如何利用 Ant Design Vue 的表单和输入组件,以及自定义验证器来实现对身份证号码的格式验证。当用户输入不符合要求时,会实时提示错误信息。希望这对您有帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22873

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?