Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery Datatable所有记录中的Struts2复选框_Javascript_Jquery_Checkbox_Datatable_Struts2 - Fatal编程技术网

Javascript jQuery Datatable所有记录中的Struts2复选框

Javascript jQuery Datatable所有记录中的Struts2复选框,javascript,jquery,checkbox,datatable,struts2,Javascript,Jquery,Checkbox,Datatable,Struts2,我试图将复选框实现为jquery数据表中的一列。当我选择这些记录时,应该在相应的Action类中单独处理这些记录。我创建了一个隐藏变量,并在jQuery中同样赋值: <input type="hidden" name="warehouseBean.pickReqList[0].grade" value="BR000-R" id="warehousePick_warehouseBean_pickReqList_0__grade"/> <input type="hidden" na

我试图将复选框实现为jquery数据表中的一列。当我选择这些记录时,应该在相应的Action类中单独处理这些记录。我创建了一个隐藏变量,并在jQuery中同样赋值:

<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"/>
$('.pickIndivCheck').click(function(e){
    var clId=this.id;
    var temp=clId.substring(40);
    var n=temp.lastIndexOf('_');
    var index=temp.substring(0,n-1);
    $('#warehousePick_warehouseBean_pickReqList_'+index+'__action').val(e.target.checked);   });
HTML:

如果我不排序或导航到表的不同页面,上面的代码就可以完美地工作。如果我选中datatable第一页上的复选框,则选中的属性将分配给action变量,并在action类中反映出来

如果我排序或分页,那么它就不起作用了。排除故障后,我发现jQuery代码正在获取单击复选框的索引并分配值。例如,如果对象中有20个元素,则加载到datatable的两个不同页面中。隐藏变量的编写方式与此类似:

<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"/>
$('.pickIndivCheck').click(function(e){
    var clId=this.id;
    var temp=clId.substring(40);
    var n=temp.lastIndexOf('_');
    var index=temp.substring(0,n-1);
    $('#warehousePick_warehouseBean_pickReqList_'+index+'__action').val(e.target.checked);   });

.........
这也是它在数据表上的显示方式。如果我对表进行排序,最后的记录将显示在表的第一页。如果选择第二条记录,jQuery方法将获取当前索引(即1)并将其分配给隐藏变量

仓库拣选仓库bean拣选需求列表1行动

而实际变量应该是

仓库拣选仓库bean拣选需求列表18行动


datatable记录的索引与隐藏对象的索引不同。您能告诉我如何将值分配给不同表中行的复选框吗?

我创建了一个虚拟变量temp,然后同样更改了HTML

<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="warehouseBean.pickReqList[%{#matStat.index}].temp" cssClass="checkbox pickIndivCheck"></s:checkbox></td>
</tr>