【问题标题】:Retrieving multiple textbox values with same name from JSP in Servlet从Servlet中的JSP检索多个具有相同名称的文本框值
【发布时间】:2012-05-12 09:02:39
【问题描述】:

我正在尝试将具有相同名称的文本框的值从 JSP 传递到 servlet,但无法完成此任务。

我尝试在 servlet 中使用它,但我只得到一个文本框值:

String[] words = request.getParameterValues("words");
String[] meanings = request.getParameterValues("meaning");

我的有助于生成多个表行的 javascript 是:

<SCRIPT language="javascript">
        function addRow(tableID) {

            var table = document.getElementById(tableID);

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);

            var cell1 = row.insertCell(0);
            var element1 = document.createElement("input");
            element1.type = "checkbox";
            cell1.appendChild(element1);

            var cell2 = row.insertCell(1);
            var element2 = document.createElement("input");
            element2.type = "text";

            cell2.appendChild(element2);

            var cell3 = row.insertCell(2);
            var element3 = document.createElement("input");
            element3.type = "text";
            cell3.appendChild(element3);

        }

        function deleteRow(tableID) {
            try {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;

            for(var i=0; i<rowCount; i++) {
                var row = table.rows[i];
                var chkbox = row.cells[0].childNodes[0];
                if(null != chkbox && true == chkbox.checked) {
                    table.deleteRow(i);
                    rowCount--;
                    i--;
                }

            }
            }catch(e) {
                alert(e);
            }
        }

    </SCRIPT>

生成多行的Html表格:-

</body>
<form name="managelist" action="../createlistpath" method="post">

    <TABLE id="dataTable" width="600px" border="0">
    <tr>
    <td><b> List Name</b></td>
    <td colspan="2"><input type="text" name="listname"></td>
    </tr>

    <tr >
        <td><b>Select</b></td>
        <td><b>Word</b></td>
        <td><b>Meaning</b></td>
    </tr>
        <TR >
            <TD><INPUT type="checkbox" name="checkbox"/></TD>
            <TD> <INPUT type="text" name="words" /> </TD>
            <TD> <INPUT type="text" name="meaning" /> </TD>
        </TR>
    </TABLE>

 <INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />

    <INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<br>
<input type="submit" value = "submit" name="submit">

</form>
</body>

【问题讨论】:

    标签: java javascript jsp servlets


    【解决方案1】:

    您不命名动态创建的输入元素(以“单词”或“含义”命名)

            var element2 = document.createElement("input");
            element2.name = "words";
            element2.type = "text";
            cell2.appendChild(element2);
    

    【讨论】:

    • 嘿,谢谢伙计!我想知道这是怎么从我脑海中消失的:P 再次感谢 :)
    【解决方案2】:

    如果你有这样的表格:

    <form method="post">
        <input type="text" name="words"><br>
        <input type="text" name="words"><br>
        <input type="submit">
    </form>
    

    如果您将 one 和 two 放入文本框中,则发送

    words=one&words=two
    

    为了得到,

    String[] words = request.getParameterValues("words");
    

    【讨论】:

    • 我的字段是这样的&lt;input type="text" name="words[item1]"&gt;,&lt;input type="text" name="words[item2]"&gt;等等。我如何在 servlet 端得到这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多