选择后,组合框值消失

时间:2013-12-19 09:47:35

标签: java javascript jsp parameters combobox

我的JSP页面上有两个组合框。它们的值来自JSON页面。当您从第一个组合框中选择一个值时,将根据第一个组合框的id列出第二个组合框值。第一个组合框用于国家名称,第二个用于城市名称。

<select onchange="ListCities()" id="ListCountries">
<%       String CountryId,CountryName;
         for(int k=0;k<= jsonarray.length()-1;k++ )
           {
           CountryId = jsonarray.getJSONObject(k).get("id").toString();
           CountryName = jsonarray.getJSONObject(k).get("name").toString();
           out.print("<option value=" + CountryId +">" +CountryName+ "</option>");
           }      
%>
</select> 

<select id="ListCities">
<%       String CityId,CityName; 
         for(int k=0;k<= jsonIlArray.length()-1;k++ )
           {
           CityId= jsonCityArray.getJSONObject(k).get("id").toString();
           CityName= jsonCityArray.getJSONObject(k).get("name").toString();
           out.print("<option value=" + CityId+">" +CityName+ "</option>");
           }  

%>

function ListCities() {
    var CountryIdFromCB = document.getElementById("CountryList").value;
    document.location.href = ('?CountryId='+ CountryIdFromCB); 
   }

组合框的值正常工作。当您从第一个组合框中选择任何项目时(第二个框根据第一个组合框的id列出),JSP页面将第一个组合框的id作为参数传递给第二个组合框。但是,刷新页面时,所选的组合框项目将消失。我想保留第一个组合框的值,即使用户从第二个组合框中选择任何项目。

我不想使用JQuery,我正在寻找纯粹的Javascript解决方案。

谢谢,马克

1 个答案:

答案 0 :(得分:0)

该问题与'selectedIndex'无关。它与选择选项的“选定”属性有关。

您丢失了所选的第一个下拉列表,因为您没有处理“已选择”属性。这是第一个下拉列表的代码:

<select onchange="ListCities()" id="ListCountries">
<%
    String CountryId,CountryName;
    for(int k=0;k<= jsonarray.length()-1;k++ )
    {
        CountryId = jsonarray.getJSONObject(k).get("id").toString();
        CountryName = jsonarray.getJSONObject(k).get("name").toString();

        if (CountryId.equals(request.getParameter("CountryId")))
        {
            out.print("<option value=" + CountryId +" selected>" +CountryName+ "</option>");
        } else 
        {
            out.print("<option value=" + CountryId +">" +CountryName+ "</option>");
        }           
     }      
%>
</select>