用于<form> <select> </select> </form>的Jquery中的下拉菜单

时间:2013-08-06 20:19:09

标签: jquery forms servlets drop-down-menu input

我有一个像这样的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中引用它。在这种情况下我该怎么做?

2 个答案:

答案 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循环设置的。