اگر به فایل jquery.validate.js مراجعه کنید، در قسمت remote آن، متد startRequest پیش از شروع عملیات Ajax و متد stopRequest پس از پایان کار فراخوانی میشوند.
این دو متد را باید برای نمایش loading بازنویسی کرد. برای مثال:
در اینجا loading به span مخفی data-valmsg-for اضافه میشود.
نمونهی این بازنویسی در مطلب « اعتبار سنجی سمت کاربر wysiwyg-editorها در ASP.NET MVC » هم انجام شدهاست.
prototype: { startRequest: function( element ) { //... }, stopRequest: function( element, valid ) { //... },
var originalStartRequest = $.validator.prototype.startRequest; $.validator.prototype.startRequest = function (element) { // یافتن عنصر در حال بررسی var container = $('form').find("[data-valmsg-for='" + element.name + "']"); // افزودن کلاس نمایش منتظر بمانید container.addClass('loading'); // فراخوانی متد اصلی برای انجام کارهای درونی افزونه originalStartRequest.apply(this, arguments); }; var originalStopRequest = $.validator.prototype.stopRequest; $.validator.prototype.stopRequest = function (element) { // یافتن عنصر در حال بررسی var container = $('form').find("[data-valmsg-for='" + element.name + "']"); // حذف کلاس نمایش منتظر بمانید container.removeClass('loading'); // فراخوانی متد اصلی برای انجام کارهای درونی افزونه originalStopRequest.apply(this, arguments); };
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="Url"></span>
نمونهی این بازنویسی در مطلب « اعتبار سنجی سمت کاربر wysiwyg-editorها در ASP.NET MVC » هم انجام شدهاست.