サーバー側でカスタム フレームワークを使用する Java/jsp アプリケーションがあります。この特定のページは、カート内のアイテムのリストを含むビュー ショッピング カートです。リストには、アイテムごとに数量を更新または削除するためのフォームがあります。私は複数のフォームを使用しているので、リスト全体を 1 つのフォームで送信する場合、どの項目を更新する必要があるかをサーバー側で判断する必要はありません。各フォームに製品の一意の ID を指定し、送信をトリガーするアクション リンクの属性にも同じ ID を追加します。アクション リンクをクリックすると、隠しフィールド pageAction を設定する必要があるため、サーバー側では、これは特定のページ アクションのコードを実行する actionEvent に対応します。したがって、cartUpdate がヒットした場合は、pageAction に設定する必要があります。
js("input[rel=actionButton]").val(action);
ID によって適切なフォームから来ていることを確認する必要があるかどうかもわかりません。または、JS側でこれを行うためのより良い方法がある場合は、私がやっていることです。アドバイスをいただければ幸いです。
HTML
<!-- QUANTITY AND MANAGEMENT -->
<td class="cartQty" align="left" valign="top">
<form id="${item.product.boId}" action="${pageContext.request.contextPath}/store/viewcart.do" method="post">
<input name="quantity" type="text" value="1" maxlength="3" class="cartQtyBox">
<input type="hidden" value="${item.product.boId}" name="productId">
<input type="hidden" value="${item.productStyle.boId}" name="productStyleId">
<input type="hidden" name="pageAction" rel="actionButton">
<a id="buttonAction" rel="buttonAction" action="cartUpdate" pid="${item.product.boId}" href="#" class="updateCart">Update</a>
<span>|</span>
<a id="buttonAction" rel="buttonAction" action="cartRemove" pid="${item.product.boId}" href="#" class="removeItem">Remove</a>
</form>
</td>
JS
js(document).ready(function() {
js("a[rel=buttonAction]").click(function(event){
var formId = js(this).attr('pid');
var action = js(this).attr('action');
js("input[rel=actionButton]").val(action);
js("#"+formId).submit();
});
});