如果条款不起作用,每次都落到其他部分

时间:2013-07-02 13:17:15

标签: javascript jquery

我的脚本返回数据不能正常工作。哪里出错了?尝试过萤火虫,但我不是那么先进,它会帮助我。它也会返回我希望它返回的数据,但是如果-clause不起作用,我希望它可以工作。

$(function () {
    $('form').submit(function (a) {
        var thisForm = $(this);
        a.preventDefault();
        $(this).fadeOut(function () {
            $("#loading2").fadeIn(function () {
                $.ajax({
                    type: 'POST',
                    url: thisForm.attr("action"),
                    data: thisForm.serialize(),
                    success: function (data) {
                        result = data;
                        $("#loading2").fadeOut(function () {
                            $("#success2").text(data).fadeIn();

                            if (result == "okie") {
                                x = "Good day";
                                document.getElementById("text1").innerHTML = Tulos + x;
                            } else {
                                x = "Good evening";
                                document.getElementById("text1").innerHTML = Tulos + x;
                            }

                        });
                    }
                });
            });
        });
    })
});

这一切都有效,直到if部分。首次提交表单的Php文件返回“okie”或“t”。当if(result == "okie")部分运行时,它每次都会带我到else部分。

  if (result == "okie") {
      x = "Good day";
      document.getElementById("text1").innerHTML = result + x;
  } else {
      x = "Good evening";
      document.getElementById("text1").innerHTML = result + x;
  }

如果结果正常,则将元素数据更改为“okieGood evening”,当它为“t”时,它将元素更改为“tGood evening”。当php返回okie时,它应该是“okieGood day”吗?我把结果放到了html中,所以我可以100%确定php返回给我的是什么。

我想添加后续问题,是什么原因导致我的代码在if子句之前在屏幕上写入结果数据?

4 个答案:

答案 0 :(得分:0)

您可以使用$ .trim()修复它:

if($.trim(result) == 'okie') {

答案 1 :(得分:0)

如果我们看不到回复,我们就无法真正帮助你。

但这就是你所做的,在chorme中打开你的firebug或“inspect element”并查看网络,而不是在你创建一个ajax调用时,你应该检查你从服务器得到的响应。

确保响应没有空格或类似的东西, 检查你的响应是否抛出了客户端:console.log(result); 查看该变量的结果。

我热烈建议你开始使用json响应而不是简单的html。

答案 2 :(得分:0)

可能是因为result变量中的前导空格。记住"okie" is not equal to " okie"。注意空格。您应该使用trim()函数从头开始删除所有空格。

在使用AJAX.

调用请求后,使用firebug检查返回的内容

答案 3 :(得分:0)

如果这不是解决方案,那么您需要检查服务器脚本。

var result = data.trim();