自定义Parsley.js异步验证器循环两次

时间:2017-02-20 18:47:55

标签: javascript jquery ajax parsley.js

我整个下午一直在想这个,我似乎无法调试这个。问题是,当我对页面进行硬刷新(文档准备好了)时,我的自定义异步验证器运行两次,但只发布一次到服务器。

window.Parsley.addAsyncValidator('emailvalidation', function (data) {
  console.log("Runs");

  var myResponseText = data.responseText;
  var obj = jQuery.parseJSON(myResponseText);

  valid = (obj.result == 1);
  return valid;
}, '/check.do?action=userEmailAvailable&ajax=1');

基本上它会在控制台中打印Runs两次,但它不会重复服务器帖子。每次循环时,它还会再打印一条错误消息(重复)。如果我从链接进入页面(使用smoothState和ajax dom插入,因此文档就绪并不会触发),就不会发生这种情况。提交表单位于页面底部,并未包装到文档就绪状态,也不是单独的.js文件中的验证程序(也未包含在文档就绪中)。此自定义验证器(也是唯一的ajax验证器)只会出现此问题。

祝你好运

1 个答案:

答案 0 :(得分:1)

现在没时间检查来源,但完全有可能每个请求都会多次运行验证程序。特别是,ajax请求被缓存....

这不应该是一个问题,你的代码只是从ajax响应到最终结果的转换(它是否有效),多次运行它不会产生任何影响。