我正在尝试添加一个从服务器获取某些信息的自定义验证程序。我知道remote
验证方法,我不想使用它,因为我试图将这个逻辑包装在自己的验证器中...因为我需要在几个中重复它地方,并希望remote
腾出其他东西。
虽然我的async
性质非常困难。现在async
暂时关闭$.ajax
上的jQuery 3.0
,我似乎无法找到任何其他方法让它在结果返回之前暂停完成。
(function () {
$.validator.addMethod("customRemote", function (value, element, param) {
$.ajax({
url: `/api/url`,
dataType: 'json',
type: 'POST',
data: {id: param, value: value}
}).done(function (response) {
console.log('always executes later ...');
return response;
});
console.log('always executes first ...');
}, "Error message ...");
})();
我的服务器上的方法被命中并执行它应该执行的所有操作,并返回正确的结果。但验证者在此之前得到了回应。我似乎无法让它发挥作用。
我应该添加,我发送XHR
并将credentials
选项设置为true,因为只有经过身份验证的用户才能访问服务器。
答案 0 :(得分:0)
您可以使用remote method source code 作为基础,并实现您的customRemote。
请注意返回“pending”,这是用于异步验证内部控制的一些关键字。
remote: function( value, element, param, method ) {
...//other code
return "pending";
}