首页 文章

Vee-validate(VueJS) - 异步评估条件

提问于
浏览
0

我可以根据AJAX请求制作返回true / false的自定义验证规则吗?问题是当AJAX调用完成时,validate调用已经完成运行 .

我是否需要根据字段有效/无效的规则设置/取消设置布尔变量?

const isValidNameRule = {
    getMessage(field)
    {
      return "The name must be unique."
    },
    validate(validatingName)
    {
      var formData = new FormData();
      formData.append("validatingName", validatingName);

      this.$http.post("/api/isValid?name=" + validatingName, formData)
        .then(function (response) {
          // success
          return true;
        }, function (response) {
          // error
          return false; 
        });
    }
  };

1 回答

  • 0

    不知道如何与Promises合作 . 最终通过扩展其中一个官方样本来实现它:

    const customRule = {
        getMessage(field, params, data) {
          return (data && data.message) || 'Something went wrong';
        },
        validate(aValue) {
    
          return new Promise(resolve => {
    
            var formData = new FormData();
            formData.append("nameFilter", aValue);
    
            $.ajax({
              type: "POST",
              url: url,
              data: {
                action: "validate",
                value: aValue,
              }
            }).done(function (data) {
    
              if (!ok)
              {
                resolve({
                  valid: false,
                  data: {message: "Condition not met"}
                });
              }
              else
              {
                resolve({
                  valid: !! aValue,
                  data: undefined
                });
              }
    
            });
    
          });
        }
      };
    

相关问题