我想使用jQuery来更新变量(当前是一个PHP变量,但显然它需要是一个js变量。)这样当用户更改多个输入字段中的值时,它会动态创建一个运行总计变化。
理想情况下,当大于上限时,它也会发出警告。
当前代码:
<?php
$counter = 0;
$expected_qty = 24;
?>
<div class="jumbotron text-center">
<p>Running Total:</p>
<h2>
<span class='running_total'>
<?php print $counter; ?>
</span> / <span class='max_qty'>
<?php print $expected_qty; ?>
</span>
</h2>
</div>
<div class="col-xs-12 col-sm-8 col-md-9">
<div class="table-responsive">
<table class="table">
<tr>
<td>
<input class='qty_field' type='number' name='input1' value=''/>
</td>
</tr>
<tr>
<td>
<input class='qty_field' type='number' name='input2' value=''/>
</td>
</tr>
</table>
</div>
</div>
当前在模糊上运行的jQuery如下:
$('body').on('blur', '.qty_field', function () {
var sum = 0;
$('.qty_field').each(function() {
sum += Number($(this).val());
});
//Write sum to run
$('running_total').html(sum);
});
我希望
虽然在示例中没有实现,但是有动态添加更多表行的功能,但脚本已将此考虑在内
编辑 - 更新了更多细节...
答案 0 :(得分:3)
通过对JS和HTML的一些调整,以下代码可以正常运行......
$('body').on('keyup', '.qty_field', function () {
var sum = 0;
$('.qty_field').each(function() {
sum += Number($(this).val());
});
$('.running_total').html(sum);
});
答案 1 :(得分:0)
这是使用AngularJS的典型案例。看看那个。使用jQuery实现这一点将是一件恐怖的事。使用Angular,只需几行代码。