Пользовательский метод jquery.validate всегда показывает недопустимый - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть собственный метод проверки, который проверяет дубликаты имен пользователей.JSON корректно возвращает notDuplicateUsername, но проверка всегда отображается как недействительная.

    $('#register-form').validate({

    //see source of http://jquery.bassistance.de/validate/demo/ for example

    rules: {
        schoolname: {
            required: true
        },
        username: {
            required: true,
            notDuplicateUsername: true
        },
        password: {
            required: true
        },
        email: {
            required: true,
            email: true
        }

    },
    messages: {
        schoolname: 'Please tell us where you want to use Word Strip.',
        username: {
            required: 'Please choose a username.',
            notDuplicateUsername: 'Sorry, that username is already being used.'
        },
        password: 'Please choose a password.',
        email: 'Please can we have your email address.'

    }

});

jQuery.validator.addMethod(
    'notDuplicateUsername', 
    function(value, element, params){

        var toCheck = new Object();
        toCheck['username'] = $('#username').val();

        var data_string = $.toJSON(toCheck);//this is a method of the jquery.json plug in

        $.post('check_duplicate_username.php', {username_data: data_string}, function(result){
            var noDuplicate = true;

            var returned_data = $.evalJSON(result);//this is a method of the jquery.json plug in

            if (returned_data.status == 'duplicate'){
                noDuplicate = false;
            }

            console.log('value of noDuplicate: '+noDuplicate);
            return noDuplicate;
        });

    }
);

Есть какие-нибудь подсказки?

1 Ответ

0 голосов
/ 26 декабря 2011

Возможно, вы уже разобрались с этим, но на всякий случай.Я столкнулся с подобной проблемой и обнаружил, что сравнивал неправильные типы.Возможно, ваш сервер отправляет статус в виде логического или другого типа данных, и его сравнение со строкой завершается ошибкой и всегда возвращает false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...