0

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

<p>基本上我从 AJAX 代码“表 PAGES 存在”中得到返回,如果我在声明后将其放入标签,我可以将其输出到标签,var response = data;但不知何故,当functionResponse.

谁能告诉我为什么?我是否传递了错误的变量?

   $(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


    })

})
4

2 回答 2

1

由于修剪按照我的建议起作用,因此我将其作为答案输入,并附有以下解释。

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

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

文本

"This is some text"

"    This is some text    "

当浏览器呈现它们时,它们会显示相同,因为重复的空格会被忽略。但是只要看一下它们,您就会发现它们不是同一个字符串。除非您通过修剪来告诉它,否则 Javascript 不会忽略引导和跟踪您的刺痛的空白。

于 2012-09-04T17:52:03.730 回答
-1

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

于 2012-09-04T17:40:12.293 回答