2017-07-24 87 views
1

在下面我试图获得price1并将其添加到price2乘以周数的乘积中。计算来自外部来源的数据

价格在它们的表单文本框(#hQuotePrice和#hTotalExtraWeek)中正确显示,但是当我尝试读取这些来计算usinkg变量price1和price2时,出现错误。

作为一个新手,我可能要么做的都是错的,要么失去了一些非常简单的东西。

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

什么错误?首先看,我会建议在对数值进行数学运算之前使用'parseFloat'。 – AtheistP3ace

+0

是的,它也需要这个:) – Richbits

回答

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)); 
}); 
+0

非常好 - 非常感谢 – Richbits