2014-04-30 92 views
0

我想用第二個選擇取決於第一個選擇,所有的信息來自一個大型數據庫的下拉列表。從數據庫jsp依賴的動態下拉列表

這些是我需要從兩個例子中使用的兩個表和列。

表國家:代碼,名稱

  RO  ROMANIA 

      GB  GREAT BRITAIN 

工作臺面積:代碼,名稱,ISOCOUNTRYCODE

 RO213 Vrancea  RO 

     RO345 Vaslui  RO 

     GB365 London  GB 

     GB453 Manchester GB 

而且這是我curently在JSP:

<td>Ţara în care s-a efectuat prelevarea probei *:</td> 
<td> 
    <select name="sampcountry" onblur="return validate2(this);" title="Ţara în care a fost prelevata proba (ISO 3166-1-alpha-2)."> 
     <option value="" /> 
     <%ResultSet rs1=s t.executeQuery("select code,name from country"); while(rs1.next()){ %> 
     <option value="<%=rs1.getString(" code ")%>"> 
      <%=rs1.getString("name")%> 
     </option> 
     <%}%> 
    </select> 
</td> 
</tr> 

<tr> 
    <td>Zona de prelevare:</td> 
    <td> 
     <select name="samparea" style="width: 300px" title="Zona în care a fost prelevată proba (Nomenclatorul Unităţilor Teritoriale pentru Statistică NUTS – sistem de coduri valabil doar pentru ţările membre UE şi Elveţia)."> 
     <option value="" /> 
     <% ResultSet rs2=s t.executeQuery("select code,name,isocountrycode from area"); while(rs2.next()){ %> 
      <option value="<%=rs2.getString(" code ")%>"> 
       <%=rs2.getString("name")%> 
      </option> 
      <%}%> 
     </select> 
    </td> 
</tr> 

什麼我需要的是,當我在第一個選擇框中選擇國家時,第二個選擇框將只顯示該國家的區域。並且AREA.ISOCOUNTRYCODE列包含COUNTRY.CODE列信息,如上面所述的示例。

回答

0

像這樣的事情會做的工作

$("select[name=sampcountry]").on("change", function(){ 
    $("select[name=samparea] option") 
    .hide().removeAttr("selected") 
    .parent().find("option[value^="+ $(this).val() +"]").show() 
    .first().prop("selected",true); 
}); 

這首先會隱藏所有選項則揭示了一個人的價值觀偉馳開始與選定的國家代碼。

FIDDLE

+0

我複製你的例子在測試頁面,它完美的作品,但是當我試圖把它帶到我的網頁,它不修剪值從RO234只是RO或只是從GB GB343,而第二個select只是返回RO或GB的值。是否可以使用子字符串的jQuery?我是jquery的新手,所以我真的會對某些線路做些什麼評論。 – Synnergy