jQuery - 输入值更改时更新变量

时间:2013-11-21 10:16:29

标签: javascript php jquery

我想使用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);


});

我希望

虽然在示例中没有实现,但是有动态添加更多表行的功能,但脚本已将此考虑在内

编辑 - 更新了更多细节...

2 个答案:

答案 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,只需几行代码。