我正在开发一个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>
现在当用户选择服务时,让我们说&#34; GSM&#34;,然后从第二个列表中选择一个服务,让我们说&#34; ASTRO&#34;。他点击了一个按钮,将他重定向到下一页,在那里他看到&#34; ASTRO&#34;打印。这很好用。 但是如果用户选择&#34; CDMA&#34;从第一个列表然后选择,让我们说&#34; VOICE CHAT&#34;从第二个清单。它仍然打印&#34; ASTRO&#34;在下一页。它应该打印&#34; VOICE CHAT&#34;。
这是提交表单的方法:
<script language=javascript>
function submitForm(actionStr)
{
if(actionStr=="User Details")
{
document.login.action="showUsrDetail.jsp";
document.login.submit();
}
}
这是按钮的代码:
<input type="button" value="User Details" onclick="submitForm(this.value);"/>
然后重定向到页面&#34;&#34; showUsrDetail.jsp&#34;。当它出现时,服务器的名称将打印在控制台上。代码是:
<%
String service = request.getParameter("services");
System.out.println("Value Added Service selected is ="+service);
%>
如果我将第一个选择更改为CDMA,然后从第二个选择列表中选择任何服务,它仍会打印出GSM下的服务。
有人可以帮帮我吗?
答案 0 :(得分: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>