我有一个servlet创建的表单,它应该从搜索中填写文本输入字段。所以形式是这样的:
<form name="form1">
<input type="text" readonly="true" value="" /> <button href="/searchServlet />
</form>
单击该按钮时,它会打开另一个表单,该表单执行搜索并将结果显示为列表,用户可以从中选择任何结果。拾取的结果id填充表单中的一些隐藏字段。现在我在“form1”中获取那些隐藏的字段数据吗?是否有一些Javascript用于此目的?或者我可以将输入从一个servlet重定向到另一个servlet吗?
答案 0 :(得分:1)
JavaScript确实是你的朋友。同时为输入命名,然后按钮按window.open()
打开一个对话框。
<form name="form1">
<input type="text" name="text1" readonly="true" />
<button onclick="window.open('/searchServlet');">search</button>
</form>
然后在/searchServlet
生成的HTML及其对话框中的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>
当然,你想在某些功能中抽象/重构冗长/重复。