我是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;
});
}
}