jQuery根据数量

时间:2017-05-15 10:12:23

标签: javascript jquery

我编写了一些jQuery代码,根据用户选择的数量动态更新隐藏的输入值:

$('input[name^="quant"]').change(function () {
       updateTotal();
    });

function updateTotal() {
        var count = 1;
        $('input[name^="quant"]').each(function() {
            var qty = $(this).val();
            var price = $(this).siblings('input[name^="price"]').val();
            $('input[name=item_name_'  + count + ']').val(qty + ' x ' + $('input[name=item_name_'  + count + ']').val());

            count++;
        });
    }

$('input[name=item_name_' + count + ']').val(qty + ' x ' + $('input[name=item_name_' + count + ']').val());通过在末尾附加当前输入值的值来替换整个输入。

例如,如果数量为4,则元素将如下所示:

<input type="hidden" name="item_name_1" value="4 x Front Row Seats">

我遇到的问题是,这种情况发生在变化时,每次我改变数量时都会这样做:

<input type="hidden" name="item_name_1" value="5 x 4 x Front Row Seats">
<input type="hidden" name="item_name_1" value="3 x 5 x 4 x Front Row Seats">
<input type="hidden" name="item_name_1" value="4 x 3 x 5 x 4 x Front Row Seats">

依旧......

有没有办法可以在我这样做之前保存隐藏输入的值,所以它永远不会像这样添加?

2 个答案:

答案 0 :(得分:0)

我找到了更好的解决方法。在我尝试设置PayPal项目的数量时,我使用了this approach

我只需要将数量设置为项目的隐藏输入,而不是手动尝试创建值以显示它为@Rory McCrossan指出:

<input type="hidden" name="quantity_1" value="1">

答案 1 :(得分:0)

检查一下

$('input[name^="quant"]').change(function() {
  updateTotal();
});

function updateTotal() {
  var count = 1;
  $('input[name^="quant"]').each(function() {
    //alert($(this).val());
    var qty = $(this).val();

    $('input[name=item_name_' + count + ']').val(qty + ' x '+'Front Row Seats');

    count++;
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <label>Quantity</label>  <input type="text" name="quant"><br />

<label>Result</label>    <input type="text" name="item_name_1" value="">