Naive组件-表单的验证 只验证表单的部分规则 单项校验某个表单项

表单的规则可以只写在表单项上 表单校验可以多个判断

<n-form-item  path="data" :label="$t('Date')" :rule="dataRule">
        <n-select :disabled="props.mode === '编辑' ||(props.mode === '添加' && dialogTableData.length > 0)"
          :style="{ width: '200px' }"
          :clearable="true"
          :placeholder="$t('selectDate')"
          v-model:value="addScheduleWeek"
          :options="weekOption"
        />
</n-form-item>
  const dataRule = {
    key: 'week',
    trigger: ['change', 'blur'],
    required: true,
    validator() {
      if (!addScheduleWeek.value) {
        return new Error($t('selectDate'));
      } else if (
        props.weeks?.includes(addScheduleWeek.value) &&
        props.mode !== '编辑'
      ) {
        return new Error($t('currentDateExistCanNotSelect'));
      }
    },
  };

在验证的过程中,你可能并不总想验证全部的表单项,你可以使用 form.validate 的第二个参数控制应用的规则。

    formRef.value.validate(
      (error: any) => {
        if (error) {
          console.log('error');
        } else {
           console.log('success');
      },
      (rule: { key: string }) => {
        // 验证除key为week以外的其他表单项
        return rule?.key !== 'week';
      },
    );

单个校验week的表单项

    function validateForm() {
      return formRef.value.validate(
        (error: any) => {},
        (rule: { key: string }) => {
          return rule?.key === 'week';
        },
      );
    }
posted @   饼MIN  阅读(320)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示