$ .ajax Success - 如果返回总是false

时间:2012-10-07 16:55:07

标签: php jquery ajax

我的$.ajax电话中有一个奇怪的错误:

//CHECK USERNAME
$('#username').focusout(function() {
    var id = $(this).attr('id');
    var username = ($(this).val());
    $(this).removeClass('hint').removeClass('hint_validated');
    if (!$(this).val() || !regexUser($(this).val())){
        //INVALID
        $('#'+id+'_hint').hide().addClass('hint').show().html(usernameInvalid);
    }else{
        //VALID -> CHECK USERNAME FROM DB IF CONFIG = TRUE
        if (checkUsername == true){
            //LOADING FROM DB
            $('#'+id+'_hint').hide().addClass('hint_check').show().html(usernameCheck);
            $.ajax({
                cache: false,
                type: 'POST',
                url: 'classes/ajax_check.php', //all that does currently is echo "USERNAMEVALID"
                data: {username: username},
                success: function(response){
                    if (response == "USERNAMEVALID") {
                        $('#'+id+'_hint').hide().removeClass('hint_check').addClass('hint_validated').show().html(usernameValid);
                    }else{
                        alert("ERROR");
                    };                      
                },
                error: function(){
                    $('#'+id+'_hint').hide().removeClass('hint_check').addClass('hint').show().html(usernameError);
                }
            });
        }else{
            $('#'+id+'_hint').hide().addClass('hint_validated').show().html(usernameValid);
        }
    }
});

调用success函数但IF子句总是抛出FALSE。为什么呢?

如果成功功能仅为alert (response);,则会实际警告USERNAMEVALID

之前我曾使用过这些功能,但我在这里找不到错误...感谢您的阅读,任何帮助都是相关的。

欢呼

Primus的

1 个答案:

答案 0 :(得分:2)

检查空行。看到之间有区别:

alert("Hi\n");
alert("Hi");

你看到的相同,但事实并非如此。试试这个:

alert(encodeURI("Hi\n"));
alert(encodeURI("Hi"));

在哪里,它以这种方式提醒:

Hi%0A
Hi

PS:如果您使用IE以外的其他浏览器,请使用console.log()代替alert()。这样你就可以检查什么是打印而不是什么了!

小提琴:http://jsfiddle.net/XaT6S/