Javascript 如果条款不起作用,则每次都属于其他部分

Javascript 如果条款不起作用,则每次都属于其他部分,javascript,jquery,Javascript,Jquery,我的脚本返回的数据不能正常工作。哪里出了问题?我试过萤火虫,但我的技术还不够先进,它本可以帮助我的。而且它确实返回了我希望它返回的数据,但是if-子句并没有像我希望的那样工作 $(function () { $('form').submit(function (a) { var thisForm = $(this); a.preventDefault(); $(this).fadeOut(function () {

我的脚本返回的数据不能正常工作。哪里出了问题?我试过萤火虫,但我的技术还不够先进,它本可以帮助我的。而且它确实返回了我希望它返回的数据,但是if-子句并没有像我希望的那样工作

$(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
part。第一次提交表单的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;
  }
若结果为okie,则将元素数据更改为“OKIEBood Night”,当结果为“t”时,将元素更改为“tGood Night”。php返回okie时应该是“okie好日子”吗?我把结果也转换成html,这样我就可以100%确定php会返回给我什么


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

您可以使用$.trim()修复它,如下所示:


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

如果我们看不到响应,我们无法真正帮助您

但这就是您要做的,在chorme中打开firebug或“inspect元素”并查看网络,而在创建ajax调用时,您应该检查从服务器得到的响应

确保响应没有空格或类似的内容, 要检查客户端的响应,您可以:console.log(result); 查看该变量的结果


我强烈建议您开始使用json响应,而不是简单的html。

这可能是因为
result
变量中的前导空格。请记住
“okie”不等于“okie”
。请注意空格。您应该使用trim()函数从一开始删除所有空格


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

如果这不是解决方案,则需要检查服务器脚本

var result = data.trim();      

尝试
.trim()
您的结果。安装firebug,您可以看到ajax调用的实际返回。或者至少可以看到console.log(结果);这里有一个链接,显示了如何使用Firebug检查AJAX请求响应这是
结果的潜在危险用法,因为它是一个全局变量,
fadeOut
方法异步运行,如果其他方法以类似方式更改
result
的值,它将影响
结果的值fadeOut
的完整回调中,使用
var result=data将result作为闭包变量;
我使用了var Tulos=$.trim(data);它成功了!感谢大家!:)我的意思是result=$.trim(data);-最好不要使用我的母语变量名。。