如何在动态选择列表的情况下request.getParameter()

时间:2014-05-02 09:43:58

标签: java javascript html jsp

我正在使用jsp。我有一个动态选择列表。我想request.getParameter()。它如何用于动态选择列表?代码如下:

<html>
<head>
<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';
        }else if(service == 'CDMA'){
            document.getElementById("gsmService").value= '';
            document.getElementById("cdmaService").style.display = 'block';
            document.getElementById("gsmService").style.display = 'none';
        } 
    }
</script>
<head>
</head>
<body>
<table>
 <tr>
    <td style="color:white"> <font size="2"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SERVICE:</b></font> </td>
    <td><select id="service" name="service" onChange="javascript:optionsChange();">
            <option value="GSM">GSM</option>
            <option value="CDMA">CDMA</option>
        </select>
   </td>
</tr>
<tr><td style="color:white"> <font size="2"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VAS :</b></font> </td></tr>
<tr id="gsmService">
    <td><select name="gsmService" > 
        <option value="COMBO OFFER">COMBO OFFER</option>
        <option value="CRICKET">CRICKET</option>
        <option value="ASTRO">ASTRO</option>
        </select>   
    </td>
</tr>   
<tr id="cdmaService">
    <td><select name="cdmaService" >
        <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>
</tr>
</table>

因为两个名单都有不同的名称&#34; gsmservice&#34;和&#34; cdmaservice&#34;。但它们是动态的,因此根据第一选择列表(GSM / CDMA)中的选择,一次只能出现其中一个。我如何使用request.getParameter()来查看已选择的值。因为如果我使用request.getParameter(gsm服务),它只返回gsm服务。如果我使用request.getParameter(cdmaservice),它只返回cdma服务。 怎么做到呢。任何sugestions?

1 个答案:

答案 0 :(得分:0)

我想这可行,但这是一个棘手的解决方案..

最初不要在您的选择框中添加名称,因为请求中不会验证没有名称的字段

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

然后使用javascrpt将名称添加到select,

if(service == 'GSM'){   
            document.getElementById("cdmaService").value= '';
            document.getElementById("cdmaService").style.display = 'none';
            document.getElementById("gsmService").style.display = 'block';
            $('#select1ID').attr('name', 'services');
        }else if(service == 'CDMA'){
            document.getElementById("gsmService").value= '';
            document.getElementById("cdmaService").style.display = 'block';
            document.getElementById("gsmService").style.display = 'none';
            $('#select2ID').attr('name', 'services');
        }

在服务器端,您可以从services单独获取值

更新::

所以我希望更好的方法是在提交后检查页面中的NUll,如下所示,

    String serviceType = "";
    serviceType = request.getParameter("service");
if(service.equals("gsm"))
{
//display this
}
else 
{
//display this 
}

希望这会有所帮助!!