表单自定义验证规则—名称重复时提醒并且禁止提交

在这里插入图片描述
在这里插入图片描述
没有内容时提示:请输入申请名称,有内容但名称重复时提示已存在

 <Form.Item
              name="name"
              label="申请名称"
              // validateStatus={this.state.validateValue ? 'success' : 'error'}
              // // validateStatus="error"
              // // help={this.state.validateStatus === 'success' ? '' : '申请名称重复'}
              // help={this.state.validateValue ? '' : '申请名称已存在'}
              validateTrigger="onBlur"
              rules={[
                {
                  required: true,
                  message: '请输入申请名称',
                },
                {
                  max: 128,
                  message: '名称不超过128个字符',
                },
                {
                  pattern: new RegExp(/^[a-zA-Z_\u4E00-\u9FA5/-]([\w\u4E00-\u9FA5-]+){0,}?$/, 'g'),
                  message:
                    '名称字母、横线、下划线或中文开头,可包含字母、横线、下划线、数字、中文,不能为纯数字',
                },
                {
                  validator: (rule, value, callback) => {
                    this.checkName(value).then((res) => {
                      if (res) {
                        // console.log(33, res)
                        if(this.state.submitName) {
                          callback('申请名称已存在');
                        }
                        callback();
                      } else {
                        callback();
                      }
                    });
                  },
                },
              ]}
            >
              <Input value={this.state.submitName} onChange={this.nameValue} />
            </Form.Item>

方法

checkName = (value) => {
    // 这个是rules自定义的验证方法
    return new Promise((resolve, reject) => {
      // 返回一个promise
      getAllPackageName({ packageName: value })
        .then((res) => {
          // 这个是后台接口方法
          if (res) {
            console.log(11, res);
            resolve(res);
          } else resolve(false);
        })
        .catch((error) => {
          reject(error);
        });
    });
  };
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Element UI 中,可以通过自定义验证规则验证表单输入的数据。面是一个示例代码,演示何自定义验证规则: ```javascript // 导入 Element UI 的验证规则方法 import { validate } from 'element-ui' // 自定义验证规则 const customRules = { // 自定义规则名称验证函数 customRule1: (rule, value, callback) => { if (value === 'custom') { callback(new Error('自定义规则1验证失败')) } else { callback() } }, customRule2: (rule, value, callback) => { if (value.length < 5) { callback(new Error('自定义规则2验证失败')) } else { callback() } }, } // 在表单中使用自定义验证规则 <el-form :rules="customRules"> <el-form-item label="自定义规则1"> <el-input v-model="input1"></el-input> </el-form-item> <el-form-item label="自定义规则2"> <el-input v-model="input2"></el-input> </el-form-item> </el-form> ``` 在上面的代码中,我们首先导入了 Element UI 的验证规则方法 `validate`。然后定义了两个自定义验证规则 `customRule1` 和 `customRule2`,这两个规则分别对输入的值进行验证,并根据验证结果调用回调函数 `callback`。当验证失败,使用 `new Error()` 创建一个错误对象,并传递给回调函数;当验证通过,直接调用回调函数即可。 最后,在表单中使用自定义验证规则,将自定义规则对象 `customRules` 通过 `:rules` 属性传递给 `el-form` 组件。在每个需要验证表单项中,通过 `v-model` 绑定输入的值,然后在 `el-form-item` 组件中添加相应的标签和验证提示信息。 这样,当用户输入的值不符合自定义验证规则,Element UI 会自动显示相应的错误提示信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值