[英]How to calculate active total using javascript for html form
我有一个HTML表单,希望在表单底部生成一个运行总计。 我也想做一些其他简单的计算,但是我找不到关于使用javascript.I进行简单计算的任何信息。我不希望有人为我做这件事,我只希望有人指出正确的方向,也就是如何创建函数将一个数量乘以一个价格乘以一个价格,然后再添加一个就可以形成一个总数。
粗略的例子:
<input type="text" name="qty1" onchange=""> <input type="text" name="price1" onchange="something">
<input type="text" name="qty2" onchange=""> <input type="text" name="price2" onchange="something">
总会是这样
=(qty1*price1)+(qty2*price2)
依此类推,提交时我想将此数字放在我的sql数据库中
我希望这不难解释。
我也想跳过没有输入的字段。
如果要使用jQuery,请按以下步骤操作:
HTML:
<div>
<input type="input" class="qty" />
<input type="input" class="price" />
</div>
<div>
<input type="input" class="qty" />
<input type="input" class="price" />
</div>
<div>
<input type="input" class="qty" />
<input type="input" class="price" />
</div>
Total: <span id="total"></span>
JavaScript的:
jQuery(function($) {
$(".qty, .price").change(function() {
var total = 0;
$(".qty").each(function() {
var self = $(this),
price = self.next(".price"),
subtotal = parseInt(self.val(), 10) * parseFloat(price.val(), 10);
total += (subtotal || 0);
});
$("#total").text(total);
});
});
基本上,只要价格或数量发生变化,就可以枚举每个数量的输入。 您可以通过找到价格类别的下一个同级来获得价格值(假设您的价格字段位于数量字段之后,并且在文档中处于同一级别)。 然后解析其值-parseInt()表示数量,parseFloat表示价格。 例如,由于js被“猜测”并且将接受十六进制值,因此10参数是将基数强制为10。 如果由于值不是数字而无法进行计算,则小计将为NaN。 我用0来“或”,所以我不尝试将NaN加到总数中。 最后,我将结果放入总字段。
您说过要将总数保存在某个地方。 您需要使用PHP在服务器上执行此操作,不要从客户端发布该值。 客户端可能会欺骗客户发布的任何值,无论是否为隐藏字段。 你不能相信它。 因此,从发布的字段在服务器上进行计算。
jsfiddle:
这就是我过去经常计算的。 答案也是正确的,但对我来说,这对我简单的想法来说太复杂了。 感谢InfinitiesLoop和其他所有人的意见
<html>
<head>
<script>
function calculate(){
if(isNaN(document.formname.qty.value) || document.formname.qty.value==""){
var text1 = 0;
}else{
var text1 = parseInt(document.formname.qty.value);
}
if(isNaN(document.formname.Cost.value) || document.formname.Cost.value==""){
var text2 = 0;
}else{
var text2 = parseFloat(document.formname.Cost.value);
}
document.formname.textbox5.value = (text1*text2);
}
</script>
</head>
<body>
<form name="formname">
<input type="text" name="qty" onblur="calculate()"<br/>
<input type="text" name="Cost" onblur="calculate()"<br/>
<input type="text" name="textbox5">
</form>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.