我有一个像这样的JQuery下拉菜单
<div id="dropdownmenu">
<ul>
<li>
<p><a href="#">Project</a></p>
<% for(CProject project: projectList)
{ %>
<p><a href="#"><%= project.getName() %></a></p>
<%
} %>
</li>
<li>
<p><a href="#">Table</a></p>
<p>Table 1</p>
</li>
<li>
<p><a href="#">Filter</a></p>
<p>Filter 1 </p>
</li>
</ul>
</div>
与this类似。
我要做的是将每个li
用作form
select
,将每个p
用作option
。
Ex:将鼠标悬停在Project上并选择所需项目,表单提交并将servlet重定向到同一页面,并填充表格选项,然后将鼠标悬停在表格上并选择所需的表格,依此类推。 ..
我唯一的问题是,在我使用form select
之前,从下拉列表value
中选择的选项将以select
标记的名称作为输入。然后我会通过request.getParameter("name_of_input");
在servlet中引用它。在这种情况下我该怎么做?
答案 0 :(得分:0)
我想办法让这项工作
<%! int variableName = -1 ; /* This is the **value** for your input */ %>
<div id="dropdownmenu">
<form name="dropdownlist" action="<!--TO YOUR SERVLET-->" method="POST" id="dropdown">
<ul>
<li>
<p><a href="#">Project</a></p>
<%for(CProject project: projectList)
{ %>
<p><a href="#" onclick="<%variablename = project.getName(); /* This will place the value of the chosen option in the variableName */%> submitform();">
<%= project.getName() %></a></p>
<%
} %>
<input type="hidden" name="projectselect" value='<%= variableName %>'/>
</li>
</ul>
</form>
我只展示了如何为第一个li
执行此操作,但是如果要发送更多输入,您需要做的就是在<%! %>
之间添加另一个变量,放置隐藏的{{1在input
标记的底部,并使其值等于您选择的变量名称。 请参阅代码以获取说明
答案 1 :(得分:0)
我的上一个答案没有正常工作,这是修复
<div id="dropdownmenu">
<form name="dropdownlist" action="<!--Servlet-->" method="POST" id="dropdown">
<ul>
<li>
<p><a href="#">Project</a></p>
<% int counter = 0;
for(CProject project: projectList)
{ %> <!-- \/ This script submits the form \/-->
<p><a href="#" onclick="document.getElementById('<%=project.getName()%>').click(); submitform()";>
<input id='<%=project.getName()%>' onclick ="this.name = 'nameWanted'"<!--This acts as the name of the <select> tag--> type="hidden" value ="<%= counter %>" <!--This value is different for each option in the for loop --> />
<%= project.getName()%></a></p>
<%
counter++;
} %>
</li>
</ul>
</form>
</div>
这种方式为每个新元素添加了隐藏的input
。每个输入在单击元素时只有一个名称,并且值是通过for循环设置的。