无法比较ajax成功函数中的数据

时间:2015-08-26 14:52:16

标签: jquery ajax

我无法使用data语句比较if。它总是返回或警告verified。我认为使用$.trim(data)可以解决问题,但事实并非如此。我该如何解决呢?

$("document").ready(function () {
    $("#login").submit(function () {
        var data = {
            "action": "test"
        };
        data = $(this).serialize() + "&" + $.param(data);
        $.ajax({
            type: "POST",
            dataType: "text",
            url: "../login.php", //Relative or absolute path to response.php file
            data: data,
            success: function (data) {
                alert(data); //shows 0 or userid

                if ($.trim(data) !== "") {
                    alert("verified");
                    //$('.profile-popup-link').trigger('click');
                } else if ($.trim(data) == '0') {
                    alert("not verified");
                    //$('.invalid-popup-link').trigger('click');
                }
            }
        });
        return false;
    });
});

3 个答案:

答案 0 :(得分:1)

if($.trim(data)!=="")

您说data始终是用户ID或0.因此if条件始终为true - data永远不会只是一个空字符串。我建议您将if($.trim(data)=='0')作为第一个条件,如果是true则返回“未经验证”,并且else执行您打算对数据执行的任何操作。

答案 1 :(得分:0)

多数民众赞成因为0 !== ""是真的,只要在你的if中反转$.trim(data)=='0'$.trim(data)!==""。别忘了,if else语句是从上到下执行还是落入他们找到的第一场比赛。

答案 2 :(得分:0)

您不需要使用jQuery $ .trim函数,只需将返回值与0进行比较。

假设数据为0或用户的id,请使用以下成功函数:

        success: function (data) {
            if (data > 0) {
                alert("verified");
                //$('.profile-popup-link').trigger('click');
            } else {
                alert("not verified");
                //$('.invalid-popup-link').trigger('click');
            }
        }

因为它在我的例子中起作用:https://jsfiddle.net/0b28mt61/