Используется следующий код для динамического добавления текстового поля с использованием JQUERY на странице jsp (one.jsp):
Как добавить текстовое поле динамически с помощью JQuery
Скажем, пользователь добавляет 3 текстовых поля, нажимая "ADD TEXTBOX", и после ввода этих значений пользователь нажимает на submit.
После представления я хочу получить доступ к этим 3 значениям в нескольких текстовых типах ввода типа myarray [] на следующей странице (nextpage.jsp).
На самом деле я хочу получить доступ к этим значениям на следующей странице (страница jsp).
Пробовал использовать request.getparameter, но это привело к получению первого значения, т.е. первого индекса:
Взято имя как "myarray []" и получило доступ к нему, используя <%= request.getParameter("myarray[]")%>: my array values
на следующей странице '
Что мне теперь делать, есть ли альтернатива этому или некоторые изменения, которые нужно сделать здесь:
Это форма на странице one.jsp:
<form action="nextpage.jsp" method="get" enctype="multipart/form-data">
<b>Add value in separate textboxes:</b>
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
<label>newvalue #1 : </label><input type='textbox' id='textbox1' name="myarray[]">
</div>
</div>
<input type='button' value='Add textbox' id='addButton'><br />
<input type="submit" value="Click to get result on next page"/><br /><br />
Ниже приведен фрагмент кода:
<html>
<head>
<title></title>
<script type="text/javascript" src="jquery-2.0.3.min.js"></script>
<style type="text/css">
div{
padding:8px;
}
</style>
</head>
<body>
<h2>Code for adding multiple textboxes dynamically... <br /></h2>
<br />
<script type="text/javascript">
$(document).ready(function(){
var counter = 2;
$("#addButton").click(function () {
if(counter>10){
alert("Only 10 textboxes allow");
return false;
}
var newTextBoxDiv = $(document.createElement('div'))
.attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after().html('<label>newvalue #'+ counter + ' : </label>' +
'<input type="text" name="textbox' + counter +
'" id="textbox' + counter + '" value="" >');
newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
});
});
</script>
Примечание: игнорируйте значение счетчика, поскольку оно просто выполняется здесь для проверки цели, код работает правильно, но он извлекает только первое значение индекса, используя параметр request.getparameter.
Пожалуйста, предложите мне что-нибудь, новичок в JQUERY и Javascript
Вы должны ввести одно и то же имя в свой атрибут имени ввода, чтобы сделать это, вам нужно отредактировать свою строку
newTextBoxDiv.after().html('<label>newvalue #'+ counter + ' : </label>' +
'<input type="text" name="textbox' + counter +
'" id="textbox' + counter + '" value="" >');
К этому:
newTextBoxDiv.after().html('<label>newvalue #'+ counter + ' : </label>' +
'<input type="text" name="myarray[]" id="textbox' + counter + '" value="" >');
На странице yout jsp вы делаете: <% = request.getParameterValues("myarray []")%>
имейте в виду: вам не нужно ставить "[]" в jsp или на любой другой язык, кроме как для php
код работает правильно, но он извлекает только первое значение индекса, используя параметр request.getparameter.
Использовать метод getParameterValues
String[] valueArray = request.getParameterValues("myarray[]");
Возвращает массив объектов String, содержащий все значения, указанные данным параметром myarray[]
, или null
если параметр не существует.