How should I check if record exists or not using jQuery Validate Plugin?

Mar 13, 2012   //   by phpfreelancer.biz   //   Blog, Jquery Tutorial  //  No Comments

I just wanted to make a validation rule to check if the record exists in database or not. I also made ajax script like blow & added it using $.validator.addMethod but it is not working. can someone please suggest how to do this ?

$.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');

The problem you are running into is that (1) the AJAX call is asynchronous so the method is returning before the AJAX call completes and (2) the return statements within the callback handler return from the handler not the validation function. The simplest way to fix this is to use the remote validation method. If you want to do it yourself, you need to have the AJAX call be synchronous (async: false) and capture the result into a variable that is returned from the function.

$.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');

Leave a comment

Share This Post

RSS Wordpress News