无法在jquery模式窗口中填充下拉列表

时间:2014-11-20 17:03:29

标签: javascript jquery ajax

点击'创建新按钮'我正在弹出一个带有下拉列表的模态窗口。我使用populateUserData()通过ajax填充下拉列表。我可以看到该呼叫已成功完成,但仍无法在下拉列表中查看数据。  帮我弄清楚我做错了什么。

      <form id="formAddUser" action="#" title="Add User to Group" style="display: none;">       
     <label for="userId"><strong>User Id</strong></label>
      <select name="" id="userId" rel="0">
            <option>Select</option>              
     </select>  
     <label for="active"><strong>Active</strong></label>
     <select name="actvUsr" id="actvUsr" rel="1">
            <option value="Y">Yes</option>
            <option value="N">No</option>
    </select>  
   <button id="userGrpOk" >OK</button>
   <button id="usrGrpCancel">Cancel</button>
   </form>

    <button type="button" id="addusr">CREATE NEW</button>

的Javascript

  var userDtl = $( "#formAddUser" ).dialog({
        autoOpen: false,
        width: 350,
        modal: true,
        });

       // open modal form.
       $( "#addusr" ).button().on( "click", function() {
               populateUserData();
               userDtl.dialog( "open" );
           });


 function populateUserData() { 
    var userDataXML = ajax data
    $.ajax({
        type : "POST",
        url : getUserdata',
        data : userDataXML,
        dataType : "json",
        contentType : "application/xml; charset=utf-8",
        async : false,
        success : function(jqXHR, textStatus,response) {
            var shtml='';
            $.each(jqXHR,function(index, data) {
                shtml+='<option value="'+data.name+'">'+data.name+'</option>';
                $("#userId").html("");
                $("#userId").html(shtml);

            });
        },
        error : function(jqXHR, textStatus, errorThrown) {
            alert("error");

        }
    });

}

1 个答案:

答案 0 :(得分:0)

如果您确定:

  • 您正在输入success回调函数
  • jqXHR数据正确,

然后在$.each()

中尝试此操作

Adding options to a <select> using jQuery?

那会给你:

success : function(jqXHR, textStatus,response) {
    var $select = $("#userId");
    $.each(jqXHR,function(index, data) {
        $select.append('<option value="'+data.name+'">'+data.name+'</option>');
    });
}

编辑: 请注意,您在success函数中熔化了参数顺序。 jQuery doc说:

  

<强>成功

     

类型:功能(任何数据,字符串textStatus,jqXHR jqXHR)