#java #javascript #forms #servlets
#java #javascript #формы #сервлеты
Вопрос:
У меня есть форма, созданная сервлетом, которая должна заполнять поле ввода текста из поиска. Итак, форма выглядит следующим образом :
<form name="form1">
<input type="text" readonly="true" value="" /> <button href="/searchServlet />
</form>
При нажатии кнопки открывается другая форма, которая выполняет поиск и отображает результаты в виде списка, из которого пользователь может выбрать любой результат. Выбранный идентификатор результата заполняет некоторые скрытые поля в форме. Теперь я получаю данные этих скрытых полей в «form1»? Существует ли какой-нибудь Javascript для этой цели? Или я могу перенаправить ввод с одного сервлета на другой?
Ответ №1:
JavaScript здесь действительно ваш друг. Также присвойте вводу имя и позвольте кнопке открыть диалоговое окно с помощью window.open()
.
<form name="form1">
<input type="text" name="text1" readonly="true" />
<button onclick="window.open('/searchServlet');">search</button>
</form>
Затем в HTML, сгенерированном /searchServlet
и его JSP в диалоговом окне, вы можете использовать window.opener
для получения родительского окна, а затем оттуда выполнять обычные document
действия, как если бы вы сидели в родительском окне. Вот базовый пример запуска:
<button onclick="window.opener.document.form1.text1.value='1'; window.close();">1</button>
<button onclick="window.opener.document.form1.text1.value='2'; window.close();">2</button>
<button onclick="window.opener.document.form1.text1.value='3'; window.close();">3</button>
Конечно, вы хотели бы абстрагироваться / реорганизовать детализацию / дублирование в какой-либо функции.