将其嵌套在另一个函数中后,它不输出文本

时间:2012-09-04 17:28:38

标签: javascript jquery ajax

我有一个愚蠢的错误,我不知道为什么会发生。

基本上我从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


    })

})

2 个答案:

答案 0 :(得分:1)

由于修剪工作符合我的建议,我将其作为答案输入以下说明。

get函数的返回处理程序能够将值赋给p标记,因为赋值不关心空格,特别是分配html,浏览器只是忽略所有额外的空格。

它没有将它传递给使其中断的函数,而是字符串比较。浏览器可能不关心HTML中的空格,但是在进行字符串比较时,JavaScript会非常关注空格。

文字

"This is some text"

"    This is some text    "
当浏览器呈现它们时,

将显示相同,因为忽略重复的空格。但只要看一下它们就可以看出它们不是同一个字符串。除非你通过修剪它来告诉它,否则Javascript不会忽略引导和追踪你的刺痛的空白区域。

答案 1 :(得分:-1)

使用“var”初始化变量只会使其在该范围内可读,因此您尝试将其称为另一个范围,或者将变量移到提交之外,或者取出“var”使其成为全局变量。