我正在构建一个表单,它会自动计算用户输入的值,理想情况下使用jQuery / javascript,我不知道如何做到这一点但是对所需的逻辑有一个大概的概念(我不是专家所以请随意纠正我) - 我创建了一个虚拟图像,以帮助解释我想要做的事情。
http://i.stack.imgur.com/WScNO.png
我有一个表单,它有许多输入字段自动计算每个表的总量,前提是它已被选中。 使用jQuery - 我希望逻辑是这样的 - i)找到输入字段元素 ii)查找表中具有值的所有文本字段 iii)将它们一起添加并显示在“总计”表单字段中
虽然我对PHP很满意,但javascript仍然让我有时感到困惑 - 我会很感激任何有关这方面的帮助,如果可能的话,请快速浏览以帮助我学习代码。
提前致谢
答案 0 :(得分:4)
试试这个:http://jsfiddle.net/Ajkkb/26/
<div>
<input name="r" class="rate" type="text" maxlength="255" size="5" value=""/>
<input name="p" class="pack" type="text" maxlength="255" size="5" value=""/>
<input name="b" class="bag" type="text" maxlength="255" size="5" value=""/>
<input name="w" class="weight" type="text" maxlength="255" size="5" value=""/>
<span class="amount"></span>
</div>
<div>
<input name="r" class="rate" type="text" maxlength="255" size="5" value=""/>
<input name="p" class="pack" type="text" maxlength="255" size="5" value=""/>
<input name="b" class="bag" type="text" maxlength="255" size="5" value=""/>
<input name="w" class="weight" type="text" maxlength="255" size="5" value=""/>
<span class="amount"></span>
</div>
<div>
<input name="r" class="rate" type="text" maxlength="255" size="5" value=""/>
<input name="p" class="pack" type="text" maxlength="255" size="5" value=""/>
<input name="b" class="bag" type="text" maxlength="255" size="5" value=""/>
<input name="w" class="weight" type="text" maxlength="255" size="5" value=""/>
<span class="amount"></span>
</div>
<div class="total_amount">total</div>
$(document).ready(function() {
$('input[name=r],input[name=p]').change(function(e) {
var total = 0;
var $row = $(this).parent();
var rate = $row.find('input[name=r]').val();
var pack = $row.find('input[name=p]').val();
total = parseFloat(rate * pack)*100;
//update the row total
$row.find('.amount').text(total);
var total_amount = 0;
$('.amount').each(function() {
//Get the value
var am= $(this).text();
console.log(am);
//if it's a number add it to the total
if (IsNumeric(am)) {
total_amount += parseFloat(am, 10);
}
});
$('.total_amount').text(total_amount);
});
});
//isNumeric function Stolen from:
//http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric
function IsNumeric(input) {
return (input - 0) == input && input.length > 0;
}