Метод добавления валидатора jQuery: пользовательские сообщения - PullRequest
0 голосов
/ 09 июля 2011

Я использую следующий код для отображения пользовательских сообщений внутри метода добавления плагина проверки jquery.Я ссылался на эту ссылку: http://www.mainframes.co.uk/index.php/2011/04/07/jquery-form-validator-custom-validation-method-using-addmethod-for-validating-date-of-birth-dob/

$.validator.addMethod("nameId",function(value,element){

            var result = true;
        //check if pattern matches
                var pattern = new RegExp(<pattern>);                
            if(pattern.test(value)){            
                    //get availability via ajax call
                    $.ajaxSetup({
                        async: false,   
                        "error":function() {   
                            alert("error");
                    }});
                    $.getJSON("<url>", 
                    {
                        param: value
                    },
                    function(data) {

                            if(condition){
                                result = true;
                            }else{
                                $.validator.messages.nameId = "Msg 1";
                                    result = false;                     
                            }
                    });

            }else{
                                $.validator.messages.nameId = "Msg 2";
                                result = false;                         
            }
    return result;
 },"");

Это не показывает ошибок при проверкеЧто может быть не так выше ...

Ответы [ 3 ]

1 голос
/ 09 июля 2011

Что произойдет, если вы поместите вызов .getJSON в функцию обратного вызова успеха .ajaxSetup? Как это:

$.validator.addMethod("nameId",function(value,element){

    var result = true;

    var pattern = new RegExp(<pattern>);

    if(pattern.test(value)){            
        //get availability via ajax call
        $.ajaxSetup({
            async: false,
            "success": function() {
                $.getJSON("<url>", 
                {
                    param: value
                },
                function(data) {
                    if(condition){
                        result = true;
                    }else{
                        $.validator.messages.nameId = "Msg 1";
                            result = false;                     
                    }
                });
            },
            "error":function() {   
                alert("error");
            }
        });

    }else{
        $.validator.messages.nameId = "Msg 2";
        result = false;                         
    }
    return result;
 },"");
1 голос
/ 04 января 2013

Добавьте это непосредственно перед строкой результата возврата:

$.validator.messages.myvalidator = customError;
0 голосов
/ 09 июля 2011

Вы не можете иметь асинхронные обратные вызовы внутри метода проверки.

...