当前位置: 首页 > 知识库问答 >
问题:

扩展异步规则中的Vee验证消息无法显示错误消息

公冶同
2023-03-14

我将vee validate与vuetify一起使用,我需要检查电子邮件是否唯一。因此,在我的vuejs中,我添加了

mounted(){

       extend('unique-email', (value) => {
         return this.$axios.post('/api/auth/unique-email', { email: value })
         .then((res) => {
          return {
            valid: true,
          };
        }, (err) => {
          return {
            valid: false,
            data: { message: 'Email already registered' }
          };
        })
        }, {
         immediate: false
       })
   }

在我的vuetify中,我添加了

<v-textfield v-model="form.email" rules="required|email|unique-emai">

上述规则适用于所有规则,但无法从唯一电子邮件规则解析已注册的邮件电子邮件。我需要添加什么,以便在异步验证失败时显示来自err部分的消息。

当前,当唯一电子邮件验证程序失败时,它仅显示电子邮件无效消息。我错过了什么?


共有2个答案

毋修为
2023-03-14

您似乎忘记收集错误信息,例如:

extend('unique-email', (value) => {
  return this.$axios.post('/api/auth/unique-email', { email: value })
    .then((res) => {
      return {
        valid: true,
      };
    }, (err) => {
      return {
        valid: false,
        data: { message: 'Email already registered' }
      };
    })
  }, 
  getMessage: (field, params, data) => data.message
)

顺便说一句,“immediate:false”是默认值,您不需要显式定义它。

井疏珂
2023-03-14

如果您查看文档,似乎需要手动处理POST调用产生的错误,因此您不需要在错误处理程序中仅返回对象,而是可以执行以下操作:

   extend('unique-email', (value) => {
     return this.$axios.post('/api/auth/unique-email', { email: value })
     .then((res) => {
      return {
        valid: true,
      };
    }, (err) => {
      this.$refs.myValidationObserver.setErrors({
         email: ['Email already registered']
      });
    })
    }, {
     immediate: false
   })

这需要超出扩展的两个更改:

  1. 将属性vid=“message”添加到您的v-text字段周围的ValidationProvider(VP)

或者,也许我错过了什么!你是从哪里想到要归还你在问题中的物品的?我在当前文档中看不到任何类似的内容。。。

      return {
        valid: false,
        data: { message: 'Email already registered' }
      };
 类似资料:
  • 因此,很明显,它识别出输入的名称太短,但我在视图中没有得到任何错误消息,正如这里所预期的:。

  • 我正在将Laravel-5.8与Vue一起使用。js。我的问题是如何在Vee Validate库中显示规则的自定义错误消息。“required”规则的自定义消息没有显示,而是显示为:“first_name字段是必需的。”预期的消息是“请输入名字。” 下面的代码在应用程序中。js 这是我的HTML组件代码。 下面是我的JS脚本代码 我遗漏了什么吗?

  • 问题内容: 我有一个表格,如果单击“提交”,则需要显示验证错误消息。 这是一个工作的家伙 用户开始进行更改时,验证工作正常。但是它不会显示任何错误消息。如果单击“提交”而不输入任何内容。 有实现这个的想法吗?或者以其他方式如何在单击“提交”按钮时使每个输入字段$ dirty 问题答案: 我在http://jsfiddle.net/thomporter/ANxmv/2/上找到了这个小提琴,它巧妙地进

  • 我有一个简单的登录模型类,几乎没有数据注释验证 View是一个部分View,如下所示: 我相信我已经做了验证消息显示所需的所有事情,但它没有,客户端验证也没有。在母版页的头部区域,我还包括了以下脚本 是什么导致了这个问题?解决办法是什么?