我有一个包含多个输入字段的表单和一个显示这些输入字段总和的“总计”框。在表单中是一个部分,用于计算从一个点到另一个点的里程成本,并自动用结果填写输入。我注意到的是,在我填写另一个表单字段之前,这个数字不会被添加到总数中。
我需要的是自动填充然后直接添加到总数中。请参阅此处查看我的工作http://www.samskirrow.com/projects/distr/index2.html - 距离calc位于页面底部,总计位于顶部
我计算总和的代码如下:
$(".txt, .select, .checkbox").each(function() {
$(this).change(function(){
calculateSum();
});
});
答案 0 :(得分:1)
calcRoute()
中的'start'变量看起来好像是非美国邮政编码。
如果您将起点默认为有效的美国邮政编码,那么一切都应该有效。
另外...在您将文字输入calculateSum()
后添加对mileageCost
的通话。
function calcRoute() {
alert("inside calcRoute()");
var distanceInput = document.getElementById("distance");
var MileageInput = document.getElementById("mileage");
var start = "15219";
var end = document.getElementById("end").value;
alert("destination: " + end);
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
distanceInput.value = Math.round(response.routes[0].legs[0].distance.value / 1609.344);
var mileageCost = Math.round(((response.routes[0].legs[0].distance.value / 1609.344)-100)+150);
if (mileageCost < 150) {
MileageInput.value = 'FREE';
} else
MileageInput.value = mileageCost;
calculateSum();
}
});
}
答案 1 :(得分:0)
根据jQuery docs,.change()
事件仅限于<input>
元素,<textarea>
框和<select>
元素。所有其他表单元素(复选框,无线电等)都会延迟,直到它们失去焦点。
所以你可以添加这样的东西:
$(".checkbox").click(function() { //Could use other methods as well
$(this).each(function() {
if ($(this).prop('checked', true)) {
calculateSum();
}
});
});