我需要一个一个地更新每个员工的等级表,jsp页面上的表显示了每一行中个别员工的一些绩效数据,以及每行中的struts2选择下拉列表和更新锚标记。它是使用struts2 迭代器标签创建的。
我需要的是,当我按下此更新链接时,它应该从下拉列表中获取所选值并更新当前行。
如何做到这一点?我想知道在 onClick 事件中我需要做什么来更新锚标记?
我需要一个一个地更新每个员工的等级表,jsp页面上的表显示了每一行中个别员工的一些绩效数据,以及每行中的struts2选择下拉列表和更新锚标记。它是使用struts2 迭代器标签创建的。
我需要的是,当我按下此更新链接时,它应该从下拉列表中获取所选值并更新当前行。
如何做到这一点?我想知道在 onClick 事件中我需要做什么来更新锚标记?
在onclick
事件调用 javascript 方法。内部方法读取所有值,然后将所有这些值发送到服务器。您也可以使用普通形式的 post 或 Ajax 来完成。
我为我的问题找到了解决方案。在此,我为列的每一行中的输入动态生成id,这意味着锚标记也使用此元素 id 分别作为 onclick 属性内的 javascript 函数的参数生成。因此,当我单击更新链接时,它会将对应行的文本字段 id 传递给 javascript 函数。这使我能够获取值并逐行更新。这是我如何做到的一个例子。
<script type="text/javascript">
function updateRole(roleID,targetID,id){
var role = document.getElementById(roleID).value;
var target = document.getElementById(targetID).value;
$.ajax({
url:"updateTeamemploydetails.action",
data:"testRole="+role + "-" + target + "-" + id,
});
</script>
<table>
<tr>
<th >S.No</th>
<th >Name</th>
<th >Role</th>
<th >Target</th>
<th >Action</th>
</tr>
<s:iterator value="emplist" status="empStatus">
<tr>
<td ><s:property value="#empStatus.count"/></td>
<td ><s:property value="empname"/></td>
<td ><s:textfield name="emprole" id="%{#empStatus.count}" theme="simple"/></td>
<td ><s:textfield name="target" id="target%{#empStatus.count}" theme="simple"/></td>
<td ><a href="#" onclick="updateRole('<s:property value="%{#empStatus.count}"/>','target'+'<s:property value="%{#empStatus.count}"/>','<s:property value="empid"/>');" >Update</a></td>
</tr>
</s:iterator>
</table>