2014-06-23 117 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