从外部源计算数据

时间:2017-07-24 14:37:47

标签: jquery

在下面我试图获得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));

1 个答案:

答案 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));  
});