如何使用jquery,json自动填充多个下拉列表

时间:2015-12-31 13:31:37

标签: jquery json

enter image description here我做了什么: 我已经动态创建了多个下拉菜单。在此下拉列表中选择任何选项时,必须自动填充另一个下拉列表。它们是必须完成自动填充的多个下拉数。

问题面临: 它在第一次下拉时正常工作。但是当我从下一个下拉菜单中选择该选项时,它也会在第一个自动填充的下拉菜单中自动填充选项。

JSP:

enter code here


  $(document).ready(function(){
<%String subAction=(String)request.getAttribute("subAction");
ArrayList<String> fieldNameList=(ArrayList<String>)request.getAttribute("fieldNameList");
  int noOfFields=(Integer)request.getAttribute("noOfFields");
if(subAction!=null && subAction.equals("view") ){%>

   $("#home").hide();
  $("#returnedFromServlet").show();
  <%}
else{%>

$("#home").show();
  $("#returnedFromServlet").hide();

<%}%>
$("#returnedFromServlet").load(function(){
  alert("Image loaded."); });


       $(".selectType").change(function(){
    $.get('Upload', {subAction:'autoPopulate',ctype:$(this).val()},function(responseJson) {  
             var html;
            var $select = $('#autoPop');  
            $.each(responseJson.arrayName, function(index,value) { 

             html += '<option name="'+value.id+'" >'+value.name+'</option>';      
            });
         $select.html(html);
        },'json');
       }); });

enter image description here

Servlet:

            JSONArray cellarray = new JSONArray();
             JSONObject cellobj = null; //new JSONObject();
             JSONObject jo=new JSONObject();
            // String country=request.getParameter("countryname");  


                 for(String s: populateFields){
                     cellobj = new JSONObject();
                     cellobj.put("id", option);
                     cellobj.put("name", s);
                     cellarray.add(cellobj);
                 }  
                 jo.put("arrayName",cellarray);
                 response.setContentType("application/json");
                 response.setCharacterEncoding("UTF-8");
                 response.getWriter().write(jo.toString());

1 个答案:

答案 0 :(得分:0)

你能发贴html吗?我认为问题在于这一行

html += '<option name="'+value.id+'" >'+value.name+'</option>';

在选择污染后,您需要删除'html'变量中的数据。