jQuery Validate 本身不支持異步驗(yàn)證,因?yàn)樗饕腔谕降谋韱悟?yàn)證。然而,您可以通過以下方法實(shí)現(xiàn)異步驗(yàn)證:
$.ajax
方法發(fā)送異步請(qǐng)求,然后在回調(diào)函數(shù)中處理驗(yàn)證結(jié)果。例如:$("#yourForm").validate({
rules: {
yourField: {
required: true,
asyncRule: function(value, element) {
return $.ajax({
url: "yourAsyncValidationUrl",
type: "POST",
data: { value: value },
dataType: "json",
success: function(response) {
if (response.valid) {
return true;
} else {
return false;
}
},
error: function() {
return false;
}
});
}
}
},
messages: {
yourField: {
required: "This field is required.",
asyncRule: "Please verify the input."
}
}
});
在這個(gè)例子中,我們?yōu)?yourField
添加了一個(gè)名為 asyncRule
的自定義驗(yàn)證規(guī)則。這個(gè)規(guī)則會(huì)發(fā)送一個(gè)異步請(qǐng)求到 yourAsyncValidationUrl
,然后在回調(diào)函數(shù)中處理驗(yàn)證結(jié)果。如果驗(yàn)證通過,返回 true
,否則返回 false
。
請(qǐng)注意,這種方法可能會(huì)導(dǎo)致用戶體驗(yàn)不佳,因?yàn)橛脩粼诘却惒津?yàn)證結(jié)果時(shí)可能會(huì)看到頁(yè)面上的其他內(nèi)容。因此,在使用異步驗(yàn)證時(shí),請(qǐng)確保提供適當(dāng)?shù)募虞d指示器,以通知用戶正在進(jìn)行的操作。