我的$.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的
答案 0 :(得分:2)
检查空行。看到之间有区别:
alert("Hi\n");
alert("Hi");
你看到的相同,但事实并非如此。试试这个:
alert(encodeURI("Hi\n"));
alert(encodeURI("Hi"));
在哪里,它以这种方式提醒:
Hi%0A
Hi
PS:如果您使用IE以外的其他浏览器,请使用console.log()
代替alert()
。这样你就可以检查什么是打印而不是什么了!