jQuery / AJAX成功函数如果语句不起作用?

时间:2014-12-14 00:54:25

标签: javascript jquery mysql ajax if-statement

我有一段代码用于检查是否可以使用jQuery AJAX调用获得所需的用户名:

function check_username()
{

    // Set user_name to the current value of input #new_user_name
    var user_name = document.getElementById('new_user_name').value;

    // Ajax to check availability of username
    $.ajax({
        url: '_check_username.php',
        type: 'post',
        data: { 'user_name': user_name },
        success: function(data) {   

            var does_it_pass_or_fail = data;

            if ( does_it_pass_or_fail === "fail" )
            {
                alert( "Sorry, the username already exists. does_it_pass_or_fail = " + does_it_pass_or_fail ); );
            }
            else
            {
                alert( "That username is available! does_it_pass_or_fail = " + does_it_pass_or_fail ); );
            }
        }, error: function() {
           // Not sure what to put here...
        }
    });

}

脚本按预期工作 - 我在_check_username.php上检查MySQL数据库,并成功返回"传递"如果名称可用,或者"失败"如果已经采用该名称,则将其存储在JS变量do_it_pass_or_fail中。

然而,无论do_it_pass_or_fail是否包含"传递"或者"失败",我只得到回复"该用户名可用!"

所以,AJAX / PHP / MySQL部分似乎工作得很好,但是这个简单的JavaScript if语句让我感到难过!

4 个答案:

答案 0 :(得分:1)

尝试使用这个:你的代码中有一些语法错误,接近alert.try日志记录错误。

function check_username()
{

    // Set user_name to the current value of input #new_user_name
    var user_name = document.getElementById('new_user_name').value;

    // Ajax to check availability of username
    $.ajax({
        url: '_check_username.php',
        type: 'post',
        data: { 'user_name': user_name },
        success: function(data) {   

            var does_it_pass_or_fail = data;
            console.log(data);
            if ( does_it_pass_or_fail === "fail" )
            {
                alert( "Sorry, the username already exists. does_it_pass_or_fail = " + does_it_pass_or_fail );
            }
            else
            {
                alert( "That username is available! does_it_pass_or_fail = " + does_it_pass_or_fail );
            }
        }, error: function(erro) {
          console.log(error);
        }
    });

}

答案 1 :(得分:0)

success: function(data) {
  console.log(data)
}

这可以帮助您调试ajax问题。

答案 2 :(得分:0)

使用firebug调试ajax请求。 地方

console.log(data);

在成功功能中。

答案 3 :(得分:0)

感谢大家带领我进一步检查AJAX电话。

事实证明,我的' _check_username.php'脚本在返回之前返回换行符" pass"或"失败" - 所以,当然," \ npass"是一个不同于#34;传递"的字符串。一旦我意识到这一点,我就能修复脚本。