JSON - 结果显示在HTML id标记中,但在return语句中未定义

时间:2013-12-12 17:50:07

标签: javascript html ajax json

我是JSON的新手并使用返回数据。在下面的示例中,我能够为变量discount分配一个值,然后在showDiscount html标记中显示该值。它正确地点击我的测试数据库并返回正确的值,我也可以将数学应用于变量。这可以在底部附近的注释部分看到。

我的问题是我想在调用函数时返回值;但是,我在调用函数时得到undefined。如果我可以在html标签中显示该值,为什么返回时该值突然未定义?

非常感谢帮助!

function codeMatch() {
    if ($('#pCodeEntry').val() == '') {
        alert("Please enter a discount code.");
    } else {
        $.ajax({
            type: "POST",
            url: "PROMO.svc/MatchCode",
            contentType: "application/json",
            dataType: "json",
            data: JSON.stringify({ codeInput: $('#pCodeEntry').val().toLowerCase() })
        }).done(function (json) {
            var json = eval(json);
            json = eval('({"d":' + json.d + '})');
            var discount = 0;
            if (json.d != '') {
                $.each(json.d, function (key, value) {
                    discount = discount + json.d[key]['DISCOUNT'];
                    //return discount;
                });
            } else {
                alert("Not a valid code.");
                //return discount;
            }

            // testing the URL purposes
            //var discountReturn = discount * 5;
            // testing the URL purposes
            //var element1 = document.getElementById("showDiscount");
            //element1.innerHTML = discountReturn; // testing only

            return discount;
        });
    }
}

0 个答案:

没有答案