کتابخانهی ذکر شده را حذف و سپس به روش زیر برای فعال سازی remote validation عمل کنید:
$.validator.methods.remote = function () { /* disabled */ };
$("form").kendoValidator({
onfocusout: true,
onkeyup: true,
rules: {
remote: function (input) {
var remoteAttr = input.attr("data-val-remote-url");
if (typeof remoteAttr === typeof undefined || remoteAttr === false) {
return true;
}
var isInvalid = true;
var data = {};
data[input.attr('name')] = input.val();
$.ajax({
url: remoteAttr,
mode: "abort",
port: "validate" + input.attr('name'),
dataType: "json",
type: input.attr("data-val-remote-type"),
data: data,
async: false,
success: function (response) {
isInvalid = response;
}
});
return !isInvalid;
}
},
messages: {
remote: function (input) {
return input.data('val-remote');
}
}
});
- در اینجا در ابتدا متد remote کتابخانهی jQuery Validator غیرفعال میشود. سپس یک rule جدید، به kendoValidator به نام دلخواه remote اضافه شدهاست. چون ruleهای kendoValidator اعمال async را پشتیبانی نمیکنند، در درخواست ajax آن async: false تنظیم شدهاست. به این ترتیب سطر پس از ajax، پس از پایان کار عملیات ajax فراخوانی میشود و در این حالت kendoValidator بدون مشکل کار خواهد کرد.
- سمت سرور آن هم مانند قبل به همراه استفاده از ویژگی Remote است که از آن صرفا برای مقدار دهی data-val-remote-url
و val-remote که در rule جدید استفاده میشوند، کمک گرفته خواهد شد.