如果ajax中的条件不适用于serialize()

时间:2015-10-19 16:05:10

标签: javascript php jquery ajax

我正在建立一个网站。我在制作我不太了解的AJAX请求时遇到了一些问题。我试图通过AJAX发布数据,我的代码如下:

$('.submitsearchbtn').on('click', function () {
    $.ajax({
        url: '',
        type: 'post',
        data: $("#a").serialize(),
        success: function (data) {
            if (data == 1) {
                $('body').load('findpals.php');
                window.setTimeout(function () {
                    $('#errors_three').css("display", "block");
                    $("#errors_three").fadeTo(10000, 0).slideUp(50, 0);
                }, 1000);
            }
            if (data == 2) {
                console.log(data);
            }
        }
    });
});

#a是我form的ID,我使用serialize()来保存我的input name=''形式的值,并且它发布到同一页面我将表单url属性留空了。

现在我的问题是每件事情都运行正常,我的PHP方面正在追踪$_POST['.....']上的帖子数据,如果错误则会返回值1,如果成功则返回2。但是,当我使用if条件并检查我的data = 1(错误)或2(成功)时,就不会发生任何事情。

我的PHP返回2表示成功,但如果条件不允许我进入该代码块。当我删除if个条件并在console.log(data)处理程序中单独设置success时,在检查元素控制台端,我会看到' 2'。那么,为什么if条件不起作用呢?我做错了吗?

2 个答案:

答案 0 :(得分:1)

尝试$ .trim(数据)。有时响应有一些空格可能会导致这种行为

答案 1 :(得分:1)

尝试使用RegExp.prototype.test()来测试12data的出现情况

if (/1/.test(data))if (/2/.test(data))