我编写了一些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">
依旧......
有没有办法可以在我这样做之前保存隐藏输入的值,所以它永远不会像这样添加?
答案 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="">