当用户更改文本字段中的项目数量时,我正在尝试更改输入字段。在这里,我从我的数据库中遍历我的列表。现在我必须为客户开具发票。
在我的代码中,如果我要更改单个项目的数量,那么它会影响列表中的所有其他项目。我只想更改其数量已更改的特定项目。
下面的代码给了我一个错误。它会在单项更改项目数量时更改所有项目值。
我的代码:(新更新)
<script type="text/javascript">
$(document).ready(function(){
$(function() {
$('input[name="quantity"]').change(function() {
var $tr = $(this).closest("tr");
var unitprice = $tr.find('input[name^="unitprice"]').val();
$tr.find('input[name^="price"]').val($(this).val() * unitprice);
});
var totalPrice = 0;
$('input[name="price"]').each(function(){
totalPrice += parseFloat(this.value);
$('[name=subtotal]').val(totalPrice);
});
});
});
</script>
..................
..................
<tr>
<td height="65%" valign="top" width="100%">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<s:iterator value="#session.BOK" status="userStatus">
<tr style="height: 10px;">
<td width="65%" align="left"><s:property value="bookTitile"/></td>
<td width="10%" align="left"><s:textfield name="unitprice" value="%{price}" size="4"/></td>
<td width="10%" align="center"><s:textfield name="quantity" value="1" size="2"/></td>
<td width="15%" align="center"><s:textfield name="price" value="%{price}" size="6"></s:textfield> </td>
</tr>
</s:iterator>
</table>
</td>
</tr>
<tr>
<td height="1%" valign="top" width="100%">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr style="height: 10px;">
<td width="100%" align="right" colspan="5">
<s:textfield name="subtotal" size="5"> </s:textfield>
</td>
</tr>
</table>
</td>
</tr>
输出如下图所示:
答案 0 :(得分:2)
试试这个
<script type="text/javascript">
$(function() {
$('input[name="quantity"]').change(function() {
var $tr = $(this).closest("tr");
var unitprice = $tr.find('input[name^="unitprice"]').val();
$tr.find('input[name^="price"]').val($(this).val() * unitprice);
});
});
</script>
更新:这个函数将返回总计算价格。根据需要使用它。
function calculateBasket() {
var totalPrice = 0;
$('input[name="price"]').each(function(){
totalPrice += parseFloat(this.value);
});
return totalPrice;
}