0

我正在尝试使用以下代码填充组合框list和数据:list2

$("#collectionPeriod").change(
    function(){
        alert('collectionPeriodIndex === ' + $(this).find('option:selected').index());
        $.ajax({
            type: "GET",
            url: "${pageContext.request.contextPath}/collectionMonitorCampus.htm",
            data: {collectionPeriodIndex: $(this).find('option:selected').index(), sYearIndexNext: $('#sYear').find('option:selected').index(), sYearVal: $('#sYear').find('option:selected').val()},
            success: function(data) {
                $("#submission").prop("disabled", false);
                $("#submission").empty();
                $("#category").empty();

                $.each($.map(data.list, function(val) {
                     $('#category').append(new Option(val,val));
                     console.log("val1 " + val);
                }));

                $.each($.map(data.list2, function(val) {
                     $('#submission').append(new Option(val,val));
                     console.log("val2 " + val);
                }));
            }
        });

    });

我遇到的问题是控制台只打印val2值并且val被完全忽略。我如何访问这些数据有错误吗?

我的控制器listlist2定义为List<String> returnList = new ArrayList<String>();

我放置的模型listlist1 in isMap model = new HashMap();`

我将 ModelAndView 返回为:

return new ModelAndView("jsonView", model);

任何帮助将不胜感激!谢谢。

4

1 回答 1

0

.each()和都是.map()能够访问data.list. 阅读更多关于.each().map()

您可以使用一个或另一个,您不需要两者:

$.map(data.list, function(val, i) {
    $('#category').append(new Option(val,val));
    console.log("val1 " + val);
});

或者

$(data.list).each(function(i, val) {
    $('#category').append(new Option(val,val));
    console.log("val1 " + val);
});

注意参数顺序,.each().map().

于 2013-03-12T19:35:55.040 回答