invoice.jsp
jQueryを使用してテキストボックスの値を計算する必要があるページがあります。
請求書には数量のテキストボックスがあります。ユーザーが数量を入力した場合、計算された価格は動的に計算(total_subPrice= unit_price * quantity)
され、「価格」と呼ばれる別のテキストボックスに表示されます。
現在の出力は次のようになります。
この問題を解決するために以下のコードを試しましたが、jQueryコードがunitprice
テキストフィールドデータを取得できません。どうしてか分かりません。以下の私のコードをチェックして、その解決策を提案してください。
invoice.jsp
--------------------
--------------------
<script type="text/javascript">
$(document).ready(function(){
$(function() {
$('input[name^="quantity"]').change(function() {
var unitprice = $(this).siblings('input[name^="unitprice"]').val();
alert("Unit price check="+unitprice);
//problem in this line. Unable to get the unit price
$(this).siblings('input[name^="price"]').val($(this).val() * unitprice);
});
});
});
</script>
..............................
..............................
<!--
Here I am iterating through a list from my dabase using strus2 framework tags.
And defined my input field values in struts2 tag eg. `<s:textfield.../>`
is the same as `<input type="text".../>
-->
<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="%{quantity}" size="2" />
</td>
<td width="15%" align="center">
<s:textfield value="%{price}" name="" size="6"></s:textfield>
</td>
</tr>
</s:iterator>
</table>
................................
................................
数量テキストボックスの値を変更すると、アラートボックスに「単価チェック=未定義」と表示されます。私のコードをチェックして、解決策を提案してください。
更新:生成されたhtml
inside loop {
<tr style="height: 10px;">
<td width="65%" align="left">book title display</td>
<td width="10%" align="left">
<input type="text" name="unitprice" value="%{price}" size="4"/>
</td>
<td width="10%" align="center">
<input type="text" name="quantity" value="%{quantity}" size="2" />
</td>
<td width="15%" align="center">
<input type="text" value="%{price}" name="" size="6"></s:textfield>
</td>
</tr>