![](/img/trans.png)
[英]How to check if a record already exists in a database before submitting the form using jQuery Laravel
[英]How should I check if record exists or not using jQuery Validate Plugin?
我正在使用從下面的URL找到的jQuery Validate插件
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
我只是想制定一個驗證規則,以檢查記錄是否存在於數據庫中。 我還制作了像blow這樣的ajax腳本,並使用$ .validator.addMethod添加了它,但是它不起作用。 有人可以建議如何做到這一點嗎?
$.validator.addMethod("check_exists", function(value) {
$.ajax({
type: "POST",
url: "xyz.com/check_exists.php",
data: $( "#frmEdit" ).serialize(),
success: function(result){
if(result=="exists")
return false;
else
return true;
},
});
}, 'This record is already exists');
驗證插件有一個內置的remote
選項,您可以提供一個URL,該請求將通過插件內的服務器發出。 對於您正在做的事情,無需創建一種全新的方法
http://docs.jquery.com/Plugins/Validation/Methods/remote#options
您遇到的問題是(1)AJAX調用是異步的,因此該方法在AJAX調用完成之前返回,並且(2)回調處理程序中的return語句從處理程序而不是驗證函數返回。 解決此問題的最簡單方法是使用遠程驗證方法。 如果您想自己執行此操作,則需要使AJAX調用是同步的( async: false
),並將結果捕獲到該函數返回的變量中。
$.validator.addMethod("check_exists", function(value) {
var status;
$.ajax({
type: "POST",
async: false,
url: "xyz.com/check_exists.php",
data: $( "#frmEdit" ).serialize(),
success: function(result){
status = result=="exists";
},
});
return status;
}, 'This record is already exists');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.