我有一个问题,试图为我的计算获得准确的运行总数。当您在输入字段中输入数字时,我会得到该订单项的准确总数,但总计数量会更高。请注意,这是一个动态表单,并且该ID将根据我添加到表单中的表单字段的数量而改变。另外,我已经设置为每个输入字段计算onKeyUp
而不是计算按钮。在jquery中运行总计的问题
计算单个项目的代码是这样的:
function calcLineItem(id) {
var id = $(id).attr("id");
var Item1 = $("#Item1" + id).val();
var Item2 = $("#Item2" + id).val();
var Item3 = $("#Item3" + id).val();
function calcTotal(Item1, Item2, Item3){
var total;
total = Math.round((Item1 * Item2) * Item3);
return total;
}
$("#total" + id).text(calcTotal(Item1, Item2, Item3));
calcAllFields();
}
这会给我总该特定输入字段。在年底,calcAllFields()
功能,是应该做的所有项目计算在我的形式给我总计所有输入的字段:
function calcAllFields(id) {
var id = $(id).attr("id");
$('#target1').text($("#total" + id).map(function() {
var currentValue = parseFloat(document.getElementById("currentTotal").value);
var newValue = parseFloat($("#total" + id).text());
var newTotal = currentValue + newValue;
document.getElementById("currentTotal").value = newTotal;
return newTotal;
}).get().join());
}
变量currentTotal
从隐藏字段上获取其值我的表格:
<input type="hidden" id="currentTotal" value="0">
当我进入数字字段该行的计算将是准确的,但总计将是不准确的,因为currentTotal
值将继续与每次击键我做输入递增领域。任何想法如何避免这种情况发生?
UPDATE:
<tr id="row1">
<td><input type="text" id="field_1 onKeyUp="calcLineItem("#row1")></td>
<td><input type="text" id="field_2 onKeyUp="calcLineItem("#row1")></td>
</tr>
我希望这有助于:形式输入字段会是什么样的一个例子。
我认为你可能错误地处理了这个问题,你可以在你的问题中增加一些标记吗?项目组的几次迭代会很有帮助。 – Joel 2010-05-27 15:34:47
我很确定这不是在jQuery中使用'.map()'的正确方法 - http://api.jquery.com/jQuery.map/ 尽管我自己从来没有使用它,但我不能某些。 – Sam 2010-05-27 15:36:41