Проверка регистрационной формы с AJAX и JSON - PullRequest
0 голосов
/ 23 марта 2012

У меня есть поле имени пользователя в моей регистрационной форме.Когда пользователь нажимает кнопку «Отправить», он должен проверить, не является ли имя пользователя пустым и не существует ли такого имени пользователя.Итак, у меня есть следующие функции:

function register() {
    var userName = checkIsUsernameExist();
    var passwordMatch = checkPasswordMatch();
    if(userName && passwordMatch){
    $.getJSON("inc/API.php",
        {
            command : "register",
            username : $("#txtNewUsername").attr("value"),
            password : $("#txtNewPassword").attr("value"),
            email : $("#txtEmail").attr("value"),
            phone : $("#txtPhone").attr("value")
        },
        function ()
        {
            $("#divIsRegFormValid").removeClass("registrationFormAlert");
            $("#divIsRegFormValid").addClass("registrationFormConfirm");
            $("#divIsRegFormValid").html("Thank you for registering!");
        }
    );
    } else {
        $("#divIsRegFormValid").removeClass("registrationFormConfirm");
        $("#divIsRegFormValid").addClass("registrationFormAlert");
        $("#divIsRegFormValid").html("Some errors occured. Please register again.");
    }
}



function checkIsUsernameExist(){
    if($("#txtNewUsername").attr("value") == "") {
        $("#divIsUsernameExist").html("");
        return false;
    } else {
    $.getJSON("inc/API.php", 
        {
            command : 'isUsernameExist',
            username : $("#txtNewUsername").attr("value")
        }).done(
        function(result)
        {
            if (result != true){
                $("#divIsUsernameExist").removeClass("registrationFormAlert");
                $("#divIsUsernameExist").addClass("registrationFormConfirm");
                $("#divIsUsernameExist").html("This username is available!");
                return true;
            } else {
                $("#divIsUsernameExist").removeClass("registrationFormConfirm");
                $("#divIsUsernameExist").addClass("registrationFormAlert");
                $("#divIsUsernameExist").html("This username is not available!");
                return false;
            }
        });
    }
}

В этот момент я получаю только False, если имя пользователя пусто, а если нет - я получаю Undefined (проверил это с помощью некоторых команд Alert).Итак, как я могу заставить его работать и возвращать True или False, если имя пользователя введено, и было проверено, существует ли такое имя пользователя уже или нет?Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Возможно, вы получили неопределенное значение, потому что в вашем html-файле нет атрибута значения $('#txtEmail').val().

0 голосов
/ 23 марта 2012

.val () предпочтительнее $("#txtEmail").attr("value") => $("#txtEmail").val();)

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