【问题标题】:Parsley Validator with call back not wroking带有回调的欧芹验证不起作用
【发布时间】:2017-08-12 03:34:56
【问题描述】:

我是 javascript 世界的新手,正在尝试添加新的 parsley 验证器,在我的验证方法中,我正在调用另一个带有回调结果的函数,我在其中放置了我的逻辑来检查 URL 是否为图像。但是验证器函数是在回调结果之前返回..我从过去 2 天开始就一直坚持这个..任何帮助都将不胜感激..下面是我的代码 sn-p ..

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',
    }
  });

【问题讨论】:

    标签: javascript jquery validation callback parsley.js


    【解决方案1】:

    你似乎没有从 validateString 返回任何东西,所以显然这行不通。

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

    祝你好运。

    【讨论】:

    • 我也尝试过返回但它不起作用。请参阅编辑后的代码 sn-p 。我不确定如何在这个函数中使用 promise。我是 Java 脚本的新手。
    【解决方案2】:

    感谢@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',
        }
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      相关资源
      最近更新 更多