我有一个JSP页面,在这个页面中我需要在一个HTML表中选择一行或多行,然后删除或修改所选的记录。
为此,我开发了一个代码,当我点击行时,我会传递该行的索引。
例如:
对于这张桌子,如果我点击博洛尼亚,我只需要修改博洛尼亚的那一行。
但现在,如果我点击Genova或Milano或Trieste,我总是只能修改第一行:为什么?
function edit(x, lenght) {
alert(x+ "/" + lenght);
var i = 0;
for (i = 0; i <= lenght; i++)
{
alert(i + "/" + x);
if (i == x)
{
var desc = document.getElementById("desc");
var secret = document.getElementById("secret");
row.style.backgroundColor = '#E1EEF4';
desc.style.bord er = "1px solid black";
desc.style.backgroundColor = "white";
desc.readOnly = false;
secret.style.border = "1px solid black";
secret.style.backgroundColor = "white";
secret.readOnly = false;
}
}
}
虽然这是我的行的代码HTML:
<td align="center" style="width: 5px;"><img
src="<s:url value="/images/x.png"/>" style="width: 15px;"></img></td>
<td align="center" style="width: 5px;"><img
onclick="edit('<s:property value="%{#status.count - 1 + startUtente}" />','<s:property value="%{listaUtenti.size}" />');"
src="<s:url value="/images/ed_propr.gif"/>"
style="width: 15px;"></img></td>
<td align="center"><s:label name="id" value="%{id}"
size="2" /></td>
<td align="center"><s:label name="userId" value="%{userId}"
size="20" /></td>
<td align="center"><s:textfield id="desc"
name="descrizione"
style="border:0px; background-color : transparent;"
readonly="true" value="%{descrizione}" size="30" /></td>
<td align="center"><s:textfield id="secret"
name="daTopSecret"
style="border:0px; background-color : transparent;"
readonly="true" value="%{daTopSecret}" size="15" /></td>
答案 0 :(得分:1)
“秘密”字段对于每一行始终具有相同的ID,您需要使用#status.count
或#status.index
(以及其他所有字段)对其进行参数化,例如
<s:textfield id="secret_%{#status.index}" />
然后在Javascript中以相同的方式阅读它:
var secret = document.getElementById("secret_" + x);