欧芹验证器回叫不打瞌睡

时间:2017-03-20 17:55:33

标签: javascript jquery validation callback parsley.js

我是javascript世界的新手,并尝试添加新的欧芹验证器,在我的验证方法中,我调用另一个具有回调结果的函数,其中我已经将我的逻辑检查到URL是图像与否。但验证器功能是在回调结果之前返回..我在最近2天坚持这个...任何帮助将非常感谢..下面是我的代码片段..

var invalid = false;
window.Parsley
  .addValidator('validUrl', {
    validateString : function(url) {

    checkURLForImage(url , function(result){
              if(result == "error" || result == "timeout" ){
                    console.log('this should print first');
                    invalid = true;
                  }
                  else{
                     invalid = false;
                  }
                 });

       console.log('this should print in last');
       return !invalid;
    },
    messages: {
      en: 'Please upload only valid image url and correct any broken preview images',
    }
  });

2 个答案:

答案 0 :(得分:1)

您似乎没有从validateString返回任何内容,因此显然这不起作用。

如果checkURLForImage仅适用于回调,则应从validateString返回您在回调中解决或拒绝的承诺。

祝你好运。

答案 1 :(得分:0)

感谢@Mark提示。我可以使用以下承诺来做到这一点:

window.Parsley.addValidator('validImgUrl', {
    validateString : function(url) {
        return new Promise(
                       function (resolve, reject) {
                        checkURLForImage(url)
                       .then(function (fulfilled) {
                           console.log('fulfilled -- > ' +fulfilled);
                           resolve(true);
                      }).catch(function (error) {
                           console.log('error -- > ' +error);
                           reject(false);
                       });
                    }
                );
    },
    messages: {
      en: 'Please upload only valid image url and correct any broken preview images',
    }
  });