我想實現該複選框作爲jQuery數據表中的列。當我選擇記錄時,那些人應該在相應的Action類中進行操作。我創建了一個隱藏的變量,並在同樣的jQuery我分配值:在jQuery的所有記錄Struts2複選框Datatable
HTML:
<s:iterator value="warehouseBean.pickReqList" status="matStat">
<s:hidden name="warehouseBean.pickReqList[%{#matStat.index}].grade"></s:hidden>
<s:hidden name="warehouseBean.pickReqList[%{#matStat.index}].quantity"></s:hidden>
<s:hidden name="warehouseBean.pickReqList[%{#matStat.index}].action"></s:hidden>
</s:iterator>
<tbody><s:iterator value="warehouseBean.pickReqList" status="matStat">
<tr>
<td><s:property value="grade" /></td>
<td><s:property value="quantity" /></td>
<td><s:select name="warehouseBean.pickReqList[%{#matStat.index}].pickQuantity" list="pickQuantity"></s:select></td>
<td><s:checkbox name="chkboxname" cssClass="checkbox pickIndivCheck"></s:checkbox></td>
</tr>
</s:iterator>
</tbody>
每當複選框被點擊,則隱藏變量分配與價值。
的jQuery:
$('.pickIndivCheck').click(function(e){
var index=$(this).closest('tr').index();
$('#warehousePick_warehouseBean_pickReqList_'+index+'__action').val(e.target.checked); });
上面的代碼完美地工作,如果我不排序或導航表中的不同頁面。如果我選中數據表第一頁上的複選框,則將檢查的屬性分配給動作變量,Action類中也會反映相同的內容。
如果我排序或分頁,那麼它不工作。在排除故障後,我發現jQuery代碼正在獲取點擊複選框的索引並分配值。例如,如果對象中有20個元素,則加載到數據表的兩個不同頁面中。隱藏變量同樣寫入:
<input type="hidden" name="warehouseBean.pickReqList[0].grade" value="BR000-R" id="warehousePick_warehouseBean_pickReqList_0__grade"/>
<input type="hidden" name="warehouseBean.pickReqList[0].quantity" value="1" id="warehousePick_warehouseBean_pickReqList_0__quantity"/>
<input type="hidden" name="warehouseBean.pickReqList[0].action" value="false" id="warehousePick_warehouseBean_pickReqList_0__action"/>
<input type="hidden" name="warehouseBean.pickReqList[1].grade" value="BR001-R" id="warehousePick_warehouseBean_pickReqList_1__grade"/>
<input type="hidden" name="warehouseBean.pickReqList[1].quantity" value="1" id="warehousePick_warehouseBean_pickReqList_1__quantity"/>
<input type="hidden" name="warehouseBean.pickReqList[1].action" value="false" id="warehousePick_warehouseBean_pickReqList_1__action"/>
<input type="hidden" name="warehouseBean.pickReqList[2].grade" value="BR002-R" id="warehousePick_warehouseBean_pickReqList_2__grade"/>
<input type="hidden" name="warehouseBean.pickReqList[2].quantity" value="1" id="warehousePick_warehouseBean_pickReqList_2__quantity"/>
<input type="hidden" name="warehouseBean.pickReqList[2].action" value="false" id="warehousePick_warehouseBean_pickReqList_2__action"/> .........
<input type="hidden" name="warehouseBean.pickReqList[18].grade" value="BR0018-R" id="warehousePick_warehouseBean_pickReqList_18__grade"/>
<input type="hidden" name="warehouseBean.pickReqList[18].quantity" value="1" id="warehousePick_warehouseBean_pickReqList_18__quantity"/>
<input type="hidden" name="warehouseBean.pickReqList[18].action" value="false" id="warehousePick_warehouseBean_pickReqList_18__action"/>
<input type="hidden" name="warehouseBean.pickReqList[19].grade" value="BR0019-R" id="warehousePick_warehouseBean_pickReqList_19__grade"/>
<input type="hidden" name="warehouseBean.pickReqList[19].quantity" value="1" id="warehousePick_warehouseBean_pickReqList_19__quantity"/>
<input type="hidden" name="warehouseBean.pickReqList[19].action" value="false" id="warehousePick_warehouseBean_pickReqList_19__action"/>
這也是它在數據表中出現的方式。如果我對錶格進行排序,則最後的記錄出現在表格的第一頁。如果我選擇第二記錄,jQuery的方法獲取當前索引(其1)被分配到隱藏變量
warehousePick_warehouseBean_pickReqList_1__action
而實際變量應該是
warehousePick_warehouseBean_pickReqList_18__action
da的索引可變記錄與隱藏對象的索引不同。你可以讓我知道如何將值分配給不同表中的行的複選框嗎?