#javascript #jsp
#javascript #jsp
Вопрос:
Я хочу динамически добавлять текстовое поле на страницу jsp при нажатии кнопки «Добавить строку». Я написал java script, чтобы добавить это. С этим проблем нет. Но я не могу получить эти значения на странице сервлета. Есть идеи?
Вот сценарий:
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 cell3 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
cell3.appendChild(element2);
var cell3 = row.insertCell(2);
var element3 = document.createElement("input");
element3.type = "text";
cell3.appendChild(element3);
var cell4 = row.insertCell(3);
var element4 = document.createElement("input");
element4.type = "text";
cell4.appendChild(element4);
}
И вот jsp, где вызывается скрипт:
<INPUT type="button"
value="Add Row" onclick="addRow('dataTable')" />
Комментарии:
1. добавляйте динамические имена к созданным текстовым полям.
Ответ №1:
Вам нужно указать name
атрибут. Это становится именем параметра запроса.
Вы можете просто присвоить им всем одинаковое имя.
element.name = "foo";
Или, если вы также хотите «уважать» пользователей IE6 / 7
document.createElement('<input type="text" name="foo">');
(jQuery упрощает все это и улучшает совместимость с кроссбраузерными программами)
Затем вы можете получить к ним доступ следующим образом в сервлете
String[] foos = request.getParameterValues("foo");
Они будут отображаться в том порядке, в каком они отображаются в дереве HTML DOM.