在下面我试图获得price1并添加price2 x周数的乘积。
价格在表单文本框中正确显示(#hQuotePrice和#hTotalExtraWeek),但当我尝试读取这些以进行计算时,我会得到一个错误。我有一个错误。
作为一个新手,我可能要么做错了,要么错过了一些非常简单的事情。
var diffs = (getDayDiff(parseDate(FromDateValue), parseDate(ToDateValue)) - 31);
var weeks = (diffs / 7);
$.get('_getprice.asp?QuoteRef=' + (qrefval + qcodeval), function(data) {
$('#hQuotePrice').val(data);
});
$.get('_getprice.asp?QuoteRef=' + (extraweekcode), function(data) {
$('#hTotalExtraWeek').val(data*weeks);
});
var price1 = $('#hQuotePrice').val();
var price2 = $('#hTotalExtraWeek').val();
$("#TotalPrice").html("<strong>Total Price £</strong>: " + (price1 + price2));
答案 0 :(得分:1)
您遇到的问题是两个AJAX调用是异步的。这意味着您的逻辑在请求完成之前尝试使用返回的值。要解决此问题,您需要在AJAX返回数据后执行计算,您可以使用$.when()
,如下所示:
var diffs = (getDayDiff(parseDate(FromDateValue), parseDate(ToDateValue)) - 31);
var weeks = (diffs / 7);
$.when(
$.get('_getprice.asp?QuoteRef=' + (qrefval+qcodeval), function(data) {
$('#hQuotePrice').val(data);
}),
$.get('_getprice.asp?QuoteRef=' + (extraweekcode), function(data) {
$('#hTotalExtraWeek').val(data * weeks);
})
).done(function() {
var price1 = $('#hQuotePrice').val();
var price2 = $('#hTotalExtraWeek').val();
$("#TotalPrice").html("<strong>Total Price £</strong>: " + (price1 + price2));
});