使用了<s:iterator>标签循环生成的input块,怎么取到某一个特定块的值呢.
<s:iterator value="#session.cartList" id="cartList">
<input type="hidden" name="goodsId" value=${cartList.goodsId }/>
<!-- 数量 -->
<td><input id="goodsNumInCart" name="goodsNumInCart" onblur="numUpdate()"/></td>
</s:iterator>
如上面已被简化的代码所示,我使用了一个 onblur="numUpdate()" 来检测控件内数字的变化,一旦内容变化:
1.这个函数就讲表单提交到后台(AJAX),后台有两个字段来接收,分别为int goodsId 和 int goodsNumInCart
2.Action会根据id来判断到底是哪个货物的数量被更新。
问题: 怎样才能仅仅传送这一对goodsId和goodsNumInCart呢。因为当s:iterator 下有许多其他块时,其他的input id="goodsNumInCart"也被传递过去了.
------解决方案--------------------<s:iterator value="#session.cartList" id="cartList">
<!-- 数量 -->
<td><input type="hidden" name="goodsId" value=${cartList.goodsId }/><input id="goodsNumInCart" name="goodsNumInCart" onblur="numUpdate(this)"/></td>
</s:iterator>
<script>
function numUpdate(goodsNumInCart) {
var goodsId = goodsNumInCart.previousSibling.value;
goodsNumInCart = goodsNumInCart.value;
///your ajax code
}
</script>