Для дальнейшего использования я обнаружил, что это можно сделать в сочетании с плагином typeWatch (http://archive.plugins.jquery.com/project/TypeWatch).
В основном, что вы хотите сделать, это (в моем случае для пули):
/*Disable keyup validation on focus and restore it to onkeyup validation mode on blur*/
$("form input[data-val-remote-url]").on({
focus: function () {
$(this).closest('form').validate().settings.onkeyup = false;
},
blur: function () {
$(this).closest('form').validate().settings.onkeyup = $.validator.defaults.onkeyup;
}
});
$(function () {
/*Setup the typeWatch for the element/s that's using remote validation*/
$("#Slug").typeWatch({ wait: 300, callback: validateSlug, captureLength: 5 });
});
function validateSlug() {
/*Manually force revalidation of the element (forces the remote validation to happen) */
var slug = $("#Slug");
slug.closest('form').validate().element(slug);
}
Если вы используете плагин vanilla typeWatch, вам придется настроить typeWatch для каждого элемента, потому что обратный вызов typeWatch не дает вам доступ к текущему элементу через $ (this), он только передает значение.
В качестве альтернативы вы можете изменить плагин typeWatch для передачи элемента (timer.el), а затем применить задержку ко всем.