我有一个愚蠢的错误,我不知道为什么会发生。
基本上我从AJAX代码返回“表PAGES存在”,如果我在声明<p>
之后将其输出,我可以将其输出到var response = data;
标签但是它不会输出任何东西when在functionResponse
内的IF语句中。
谁能告诉我为什么?我传递的变量是错误的吗?
$(document).ready(function(){
function functionResponse (response){
if (response == "The table PAGES exists"){
$("p").html(response);
}
} // close of functionResponse
$("#iForm").submit( function(event){
event.preventDefault();
var user = $("input[name=username]").val();
var password = $("input[name=password]").val();
var dbName = $("input[name=dbName]").val();
var server = $("input[name=server]").val();
$.get("1.php", {username: user, password: password, dbName: dbName, server: server },function(data){
var response = data;
functionResponse (response);
}) // close of .get
})
})
答案 0 :(得分:1)
由于修剪工作符合我的建议,我将其作为答案输入以下说明。
get函数的返回处理程序能够将值赋给p标记,因为赋值不关心空格,特别是分配html,浏览器只是忽略所有额外的空格。
它没有将它传递给使其中断的函数,而是字符串比较。浏览器可能不关心HTML中的空格,但是在进行字符串比较时,JavaScript会非常关注空格。
文字
"This is some text"
和
" This is some text "
当浏览器呈现它们时,将显示相同,因为忽略重复的空格。但只要看一下它们就可以看出它们不是同一个字符串。除非你通过修剪它来告诉它,否则Javascript不会忽略引导和追踪你的刺痛的空白区域。
答案 1 :(得分:-1)
使用“var”初始化变量只会使其在该范围内可读,因此您尝试将其称为另一个范围,或者将变量移到提交之外,或者取出“var”使其成为全局变量。