簡體   English   中英

如何使用jQuery Validate插件檢查記錄是否存在?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM