【问题标题】:Vee-validate (VueJS) - evaluating a condition asynchronouslyVee-validate (VueJS) - 异步评估条件
【发布时间】:2017-10-21 17:18:33
【问题描述】:

我可以根据 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; 
        });
    }
  };

【问题讨论】:

    标签: vue.js vuejs2


    【解决方案1】:

    不知道如何使用 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
                });
              }
    
            });
    
          });
        }
      };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-10
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 2021-05-06
      • 2017-06-17
      相关资源
      最近更新 更多