是否可以动态重新加载一个form:select,其值取决于另一个form:select的值


问题内容

我在表格中有一对州/城市下拉菜单。城市下拉列表应根据用户选择的状态动态更改。我在Spring MVC中使用jQuery。

我的州/城市对象是HashMaps的HashMap,因此,对于州“
01”(第一个键),我有城市001(第二个键)-city1(值)和002(第二个键)-city2(值) :

LinkedHashMap<String,LinkedHashMap<String, String>> enumsCountyByDistrict = new LinkedHashMap<String,LinkedHashMap<String, String>>();
LinkedHashMap<String, String> districtCounties = new LinkedHashMap<String, String>();
for (City en : cities)
    districtCounties.put(en.getCode(), en.getDescription());

enumsCountyByDistrict.put(district, districtCounties);

城市是我从数据库中检索到的列表。

我通过以下方式将此对象传递给我的视图:

modelAndView.addObject("countiesByDistrict", enumsCountyByDistrict);
modelAndView.addObject("districts", districts);

地区是不同州的列表。

现在,我的JSP使用form:selects显示值:

        <div class="span3">
            <label> <fmt:message key="create.district" /></label>
            <form:select id="addressdistrict"  path="person.addressdistrict">
                <c:forEach items="${districts}" var="item">
                    <form:option value="${item.code}" label="${item.description}" />
                </c:forEach>
            </form:select>
        </div>
        <div class="span3">
            <label> <fmt:message key="create.county" /> </label>
            <form:select path="person.addresscounty" id="addresscounty">
                <form:options items="${countiesByDistrict['13']}" />
            </form:select>
        </div>

我正在硬编码countiesByDistrict [ ‘13’
]来显示第13区的城市,而且还可以,但是现在,显然,我希望根据在addressdistrict form:select中选择的代码进行更改。

有人可以帮忙吗?


问题答案:

进行ajax调用以获取城市列表并更新您的其他选择框。如果您不想进行ajax调用或城市列表很小,请在初始页面请求中获取这两个详细信息,然后使用javascript/ jquery进行更新。