2017-02-20 7 views
0

Я понял это на весь день, и я не могу отлаживать это. Проблема заключается в том, что когда я делаю жесткое обновление страницы (готовность к документу), мой пользовательский асинхронный валидатор работает дважды, но только сообщения один раз на сервер.Пользовательские асинхронные проверки валидатора 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 дважды в консоли, но это не собирается повторять пост сервера. Для каждого цикла он также печатает еще одно сообщение об ошибке (дубликат). Этого не происходит, если я прихожу на страницу по ссылке (используя плавное включение и вставку ajax dom, так что готовый документ не срабатывает). Форма отправки находится внизу страницы и не завершена в готовый документ, и ни один из них не является валидатором, который находится в отдельном файле .js (также не завернутый в готовый документ). Эта проблема возникает только с этим настраиваемым валидатором (который также является единственным, который является ajax).

С наилучшими пожеланиями

ответ

1

Нет времени, чтобы проверить источник прямо сейчас, но это вполне возможно, валидатор будет работать более чем один раз для каждого запроса. В частности, запросы ajax кэшируются ....

Это не должно быть проблемой, но ваш код представляет собой просто перевод из ответа ajax на конечный результат (он действителен), запуск его несколько раз не должен имеют какое-либо влияние.