Проверка jQuery - ответ submitHandler и AJAX - PullRequest
1 голос
/ 07 декабря 2010

Я пытаюсь выполнить ajax-проверку доступности имени пользователя и отправляю форму, только если имя пользователя доступно.

Используя плагин jQuery Validation, я установил:

        submitHandler: function(form) {
        if (ajaxCheck() == true){
            alert('true');
        }
    }

И моя функция проверки имени пользователя выглядит следующим образом:

function ajaxCheck(){
usernameVal = $("#username").val().toLowerCase();
usernameVal = usernameVal.replace(/[\s\W]/g, '');
$.post("/app/signup/username/", {
username: usernameVal
}, function(response){
    if (response == "Username not available.") {
        $("#signup").validate().showErrors({ "username" : "Username Not Available." });
        alert('false');
        return false;
    } else {
        alert('true');
        return true;
    }
});

}

Проблема в том, что он не возвращает истину или ложь submitHandler. Я не уверен, что это потому, что операторы return находятся в $ .post?

Если я запускаю ajaxCheck независимо, он предупреждает false и true в зависимости от доступности, он просто не возвращает false / true, если он вызван submitHandler.

Любые идеи приветствуются.

Ответы [ 3 ]

2 голосов
/ 22 ноября 2012

Вы также можете использовать удаленную опцию, как это!

remote: {
    url: myUrl = location.protocol + "//" + location.host + '/trabajos/json.php?c=wrk&a=validMail',
    type: "post",
    data: {
        correo: function() {
                return $("#subtrabajo_correo").val();
            }
        }
}
1 голос
/ 07 декабря 2010

Novon,

Вы можете установить переменную внутри успешного ajax, но, насколько мне известно, вы не можете вернуть значение из ajax.

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

Вы не можете сделать ajax-вызов и получить возвращаемое значение, как метод

0 голосов
/ 07 декабря 2010

Отлично, теперь работаем с:

$.validator.addMethod("usercheck", function(value, element) {
        ajaxCheck();
        return validName;
}, "Username not available!");

и устанавливаем переменную «validName» вместо возврата true / false в ajaxCheck ();

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