如何在spring mvc中使用ajax调用设置下拉值

时间:2016-02-05 12:46:45

标签: jquery ajax spring mongodb

我是ajax和spring mvc的初学者。我使用ajax调用从我的数据库(mongodb)获取数据。我想知道如何从ajax对象设置下拉值。

 home.jsp

<select class="form-control" id="list1value">
<c:forEach items="${???}" var="item">
<option value="${item. pri-ID}">${item.uniID}</option>
</c:forEach>
</select>

<script type="text/javascript" >
     $(document).ready(function() {
          $('#id').on('change', function() {
               var value = $(this).val(); 
               $.ajax({
                    type: "GET",
                    url: "list",
                    data:  "id=" +value,
                    success: function(data) {
                         alert(data);
                         console.log(data); 
                         $('#list1value').val(data.cusID);
                         $('#list1value').val(data.uniID);
                    }
               });
          })
     })
</script>

我的数据对象是     {     “cusID”:“14345”,     “uniID”:“123999”,     “名称”:“wName”,     “pri-ID”:“11335”      }

如何在 部分编写代码以分配选项值

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您的代码没有任何问题。在将值分配给list1value和list2value之后,您是否检查了元素以检查其“value”属性?

您的代码只会更改“value”属性,而不会更改元素内部html中显示的文本。

确保你能做到:

$.ajax({
        type: "GET",
        url: "list",
        data:  "id=" +value,
        success: function(data) {
               alert(data);
               console.log(data); 
               $('#list1value').val(data.cusID);
               $('#list2value').val(data.uniID);

               //check if value is assigned correctly
               console.log($('#list1value').val());
               console.log($('#list2value').val());

               //Write in the inner html of the option
               $('#list1value').html(data.cusID);
               $('#list2value').html(data.uniID);
        }
});

答案 1 :(得分:0)

尝试使用以下成功回调:

function(data) {
    var selectEl = $('select.form-control');
    selectEl.children().remove();
    for (var key in data) {
        var optionEl = $('<option/>')
                .attr('value', data[key])
                .text(key);
        el.append(optionEl);
    }
}