我有一个下拉列表和2个文本框。我有一行超过1行相同的字段。当我做总计时,它在第一行完成,但没有在第二行获得总数。
var counter = 1;
counter++;
$(document).on('change, focusout', '.price,.qty', function() {
var oproductname = $(this).val();
var productQty = parseInt($('#productqty' + counter).val());
var productPrice = parseFloat($('#orderedproduct' + counter).find(':selected').data('price'));
var totalAmount = productQty * productPrice;
$('#orderammount' + counter).val(totalAmount);
});
<select name="orderedproduct" id="orderedproduct2" class="price">
<option>Select Ordered Product</option>
<option value="1" data-price="45.23">incarprot</option>
<option value="2" data-price="50.00">incalcy</option>
</select>
<input type="text" name="productqty" id="productqty2" class="gui-input" placeholder="Quantity">
<input type="text" name="orderammount" id="orderammount2" class="gui-input qty" disable placeholder="Total Amount">
<select name="orderedproduct" id="orderedproduct3" class="price">
<option>Select Ordered Product</option>
<option value="1" data-price="45.23">incarprot</option>
<option value="2" data-price="50.00">incalcy</option>
</select>
<input type="text" name="productqty" id="productqty3" class="gui-input" placeholder="Quantity">
<input type="text" name="orderammount" id="orderammount3" class="gui-input qty" disable placeholder="Total Amount">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
答案 0 :(得分:1)
counter
变量中的错误,使用方式,counter
永远不会更改为3,第二行不会显示Total Amount
。因此,为了使其正常工作,您可以在名为<select>
的{{1}}下拉列表中添加新的属性属性,然后在row
中获取此row
值,然后可以在counter
选择器中使用。
id
&#13;
$(document).on('change, blur', '.price,.txtQuantity', function(){
debugger
var oproductname = $(this).val();
var counter = $(this).attr('row');
var productQty = parseInt($('#productqty'+counter).val());
var productPrice = parseFloat($('#orderedproduct'+counter).find(':selected').data('price'));
var totalAmount = productQty * productPrice ;
$('#orderammount'+counter).val(totalAmount );
});
&#13;