使用jQuery Validation Plugin,是否有方法使用$.validator.addMethod
創建自定義規則,該規則利用了remote
功能?如何創建使用遠程方法的自定義規則?
我曾嘗試下面的代碼:
$.validator.addMethod("custom-remote", function (value, element, param) {
if (this.optional(element)) {
return true;
}
return $.validator.methods.remote.call(this, value, element, {
url: "/checkvalue",
type: "POST",
data: {
valueToCheck: value
}
});
}, jQuery.format("{0}"));
其中僅如果更改焦點輸入遠程請求完成之前的作品。
我不想使用$.ajax()
和async: false
,因爲在這種情況下可能會造成糟糕的用戶體驗。
如果你不能只用'remote'規則,需要一個自定義的方法,那麼你不需要'remote'可言。只需在自定義方法中使用'.ajax()'。 – Sparky
另外,你爲什麼要這麼做呢?我的自定義方法中沒有看到默認的'remote'方法本身不具備的功能。你的代碼只不過是它本身的一個方法。按照它的設計使用'remote'規則。 – Sparky
@Sparky我的印象是'addMethod'必須馬上返回,這意味着您需要使用'async:false'來處理ajax請求,我不想這樣做,因爲這可能會導致糟糕的用戶體驗。至於爲什麼,這是一個簡單的例子來顯示我想要做什麼。此外,我還有一些其他自定義驗證'addMethod'調用不使用遠程,我想保持一致。 –