0

我正在使用以下 JQuery、JSP 和 Controller 在我的应用程序 JSP 页面上更改国家下拉菜单时返回城市列表,但我认为 JQuery 中的 dataType、成功参数不正确,因为我没有返回列表. 那么有人可以告诉我我在这里做错了什么以及如何在更改国家下拉菜单后获取城市列表以将它们添加到城市下拉菜单中?

谢谢你的时间

<script type="text/javascript">
    function loadCity(){
            var countryData="countryId="+$(country).val();
            $.ajax({
                type: "POST",
                url: "LoadCities.htm",
                data:countryData,
                dataType: "javascript",
                success: function(cities){
                    loadCities(eval(cities))
                }
            });
        }

        function loadCities(citiesLst){
            clearCitiesDD();
            for(var i=0;i<citiesLst.length;i++){
                var city=citiesLst[i];
                appendCity(city.id,city.value);
            }
        }

        function clearCitiesDD(){
            $('#cityDD').find('option').remove();
        }

        function appendCity(id,cityName){
            $('#cityDD').append($("<option id='"+id+"'>" + cityName + "</option>"));
        }
        }            
</script>

在我的应用程序控制器中,我有以下代码:

@RequestMapping(value = "/LoadCities.htm", method = RequestMethod.GET)
public @ResponseBody
List<City> getCityByCountryID(HttpServletRequest request, HttpServletResponse response) 
        throws Exception {

List<City> list=
icitys.getCitiesByCountry(Long.parseLong(request.getParameter("countryID")));
return list;        
}

在 JSP 文件中,我有以下城市和国家/地区下拉菜单:

<tr>
    <td align="right">Country</td>
    <td align="left">
        <select id ="country" name="country" onchange="loadCity()">
            <option  value="0">--select--</option>
            <c:forEach var="countrylst" items="${countriesList}">
                <option  value="${countrylst.id}">${countrylst.countryName}</option>
            </c:forEach>
        </select>
    </td>
</tr>   
<tr>
    <td align="right">City</td>
    <td align="left">
        <select id="cityDD" name="cityDD">
            <option  value="0">--select--</option>
        </select>       
    </td>
</tr>
4

2 回答 2

2

希望您在将 $(country) 更改为 $('#country') 后得到解决方案。

还有一件事,您将 dataType 设置为“javascript”,但可用的数据类型是xml, json, script, or html.

最好尝试使用html.

祝你好运。

于 2013-08-22T10:12:59.433 回答
0

应该

var countryData="countryId="+$(country).val();

不是

var countryData="countryId="+$('#country').val();
于 2013-08-22T08:26:59.130 回答