Jquery js isValid()使用自定义验证器返回null

Jquery js isValid()使用自定义验证器返回null,jquery,ajax,forms,validation,parsley.js,Jquery,Ajax,Forms,Validation,Parsley.js,我正在使用parsley.js(2.8.1)自定义验证器来检查服务器上是否已经存在输入代码。 一切正常,但提交时返回parsley().isValid()和parsley().validate()返回null 删除自定义验证器工作正常,但我无法从客户端检查服务器上的现有代码 <form id="product-form"> [....] <input id="product-code" data-parsley-code="check-code"

我正在使用parsley.js(2.8.1)自定义验证器来检查服务器上是否已经存在输入代码。 一切正常,但提交时返回
parsley().isValid()
parsley().validate()
返回
null

删除自定义验证器工作正常,但我无法从客户端检查服务器上的现有代码

     <form id="product-form">
   [....]
   <input id="product-code"
    data-parsley-code="check-code" data-parsley-length="[3,32]"
    type="text" class="form-control" required>
   [....]
   </form>

   <script>
    $(function(){
        let formInstance = $('#product-form');
        formInstance.parsley();
        Parsley.addValidator('code', {
            validateString: function(value, requirement) {
                let xhr = $.post('/product/' + requirement + '/' + value);
                return xhr.then(function (json) {
                    if (!json.status) {
                        return $.Deferred().reject(json.message)
                    }
                })
            },
            messages: {en: 'Failed to check product code.'}
        });

        formInstance.on('submit', function(e) {
        e.preventDefault();
          console.log(formInstance.parsley().validate());  // returns null
          console.log(formInstance.parsley().isValid()); // returns null
       if (formInstance.parsley().isValid())) {
           [.....]
       }
   }
    [.....]
    </script>

[....]
[....]
$(函数(){
设formInstance=$(“#乘积形式”);
欧芹();
Parsley.addValidator('代码'{
validateString:功能(值、需求){
设xhr=$.post('/product/'+requirement+'/'+value);
返回xhr.then(函数(json){
如果(!json.status){
return$.Deferred().reject(json.message)
}
})
},
消息:{en:'检查产品代码失败。}
});
formInstance.on('submit',函数(e){
e、 预防默认值();
console.log(formInstance.parsley().validate());//返回null
console.log(formInstance.parsley().isValid());//返回null
if(formInstance.parsley().isValid()){
[.....]
}
}
[.....]
我想检查并提交表单,然后做ajax工作。

Option1: 由于您的代码与承诺一起工作,请在验证时转到
,从:

返回布尔值或null值的validate({group,force})方法 由于远程验证始终返回打开,因此将始终返回null 承诺

请注意,如果为true,处理程序将丢失一个return语句

请阅读的内部实现以供参考(如果仍然很复杂,请转到选项2)

备选案文2: 您可以将
parsley.remote.js
js文件添加到项目中,然后使用
addAsyncValidator


远程使用的好例子。

您能根据您更新的内容编辑您的问题吗?因为我看不到它返回任何正确或错误的更新我的答案,希望有帮助:)