0

$.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);
        }
    }
});

成功関数が呼び出されますが、IF句は常にFALSEをスローします。なんで?

成功関数がそれだけである場合、alert (response);それは実際に警告しますUSERNAMEVALID

私は以前にこれらの関数を使用したことがありますが、ここでエラーを見つけることができません...読んでくれてありがとう、どんな助けにも感謝します。

応援

PrimuS

4

1 に答える 1

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/

于 2012-10-07T16:59:44.587 に答える