2014-06-23 115 views
-1

我正在開發一個jsp項目,其中有一個動態選擇列表。該列表中的值根據在第一個選擇列表中選擇的值而變化。 下面的代碼:從動態選擇列表中獲取選定的值

<script language="JavaScript" type="text/javascript"> 
function optionsChange(){ 
    var service = document.getElementById("service").value; 
    if(service == 'GSM'){ 
     document.getElementById("cdmaService").value= ''; 
     document.getElementById("cdmaService").style.display = 'none'; 
     document.getElementById("gsmService").style.display = 'block'; 
     $('gsmService').attr('name', 'services'); 
    }else if(service == 'CDMA'){ 
     document.getElementById("gsmService").value= ''; 
     document.getElementById("gsmService").style.display = 'none'; 
     document.getElementById("cdmaService").style.display = 'block'; 
     $('cdmaService').attr('name', 'services'); 
    } 
    } 
</script> 

<select id="service" onChange="javascript:optionsChange();"> 
      <option value="GSM">GSM</option> 
      <option value="CDMA">CDMA</option> 
</select> 

<td id="gsmService" ><select name="services" > 

      <option value="COMBO OFFER">COMBO OFFER</option> 
      <option value="CRICKET">CRICKET</option> 
      <option value="ASTRO">ASTRO</option> 
</select> 
</td> 

<td id="cdmaService" style="display:none"><select name="services" > 
      <option value="COMBO OFFER CDMA">COMBO OFFER CDMA</option> 
      <option value="WIN THE DREAM">WIN THE DREAM</option> 
      <option value="VOICE CHAT">VOICE CHAT</option>   
     </select> 
</td> 

現在,當用戶選擇的服務,讓說,「GSM」,然後選擇從第二列表中的服務,讓說,「ASTRO」。他點擊一個按鈕,將他重定向到他看到「ASTRO」打印的下一頁。這工作正常。 但是,如果用戶從第一個列表中選擇「CDMA」,然後選擇,則從第二個列表中選擇「VOICE CHAT」。它仍然在下一頁打印「ASTRO」。 IT應打印「語音聊天」。

這是提交表單的方法:

<script language=javascript> 

function submitForm(actionStr) 
{ 
    if(actionStr=="User Details") 
    { 
     document.login.action="showUsrDetail.jsp"; 
     document.login.submit(); 
    } 
} 

這是該按鈕的代碼:它重定向到該頁面 「」 showUsrDetail.jsp」

<input type="button" value="User Details" onclick="submitForm(this.value);"/> 

然後。當它的名稱服務打印在控制檯上。代碼爲:

<% 
    String service = request.getParameter("services"); 
    System.out.println("Value Added Service selected is ="+service); 
%> 

如果我將第一個選擇更改爲CDMA,然後從第二個選擇列表中選擇任何服務,它仍然打印GSM中的服務。

有人可以幫我嗎?

+0

編寫一個javascript函數來獲取組合框的值,而不是從servlet獲取相同的值。 – AJJ

回答

1

您可以編寫一個javascript函數來獲取選定的值,而不是從servlet獲取相同的值。將腳本標籤中的Javascript函數作爲JavaScript語言。

function JSGetSelectedItem() { 
    var dropdownIndex = document.getElementById('service').selectedIndex; 
    var dropdownValue = document.getElementById('service')[dropdownIndex].text; 
} 

<select id="service" onChange="JSGetSelectedItem()"> 
      <option value="GSM">GSM</option> 
      <option value="CDMA">CDMA</option> 
</select> 
+0

我寫了一個函數來從這兩個列表中獲取選定的值.. ti工作..!謝謝 :) – learner