修改表

时间:2016-07-20 09:45:56

标签: javascript html jsp struts2

我有一个JSP页面,在这个页面中我需要在一个HTML表中选择一行或多行,然后删除或修改所选的记录。

为此,我开发了一个代码,当我点击行时,我会传递该行的索引。

例如:

table

对于这张桌子,如果我点击博洛尼亚,我只需要修改博洛尼亚的那一行。

但现在,如果我点击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>

1 个答案:

答案 0 :(得分:1)

“秘密”字段对于每一行始终具有相同的ID,您需要使用#status.count#status.index(以及其他所有字段)对其进行参数化,例如

<s:textfield id="secret_%{#status.index}" />

然后在Javascript中以相同的方式阅读它:

var secret = document.getElementById("secret_" + x);