2017-09-14 300 views
0

我是jquery的新手,并且试图用我返回的结果填充下拉菜单。我基本上有一个按钮,它将在一个ajax调用中打开一个局部视图,然后通过另一个ajax调用返回下拉数据。使用JQuery AJAX在部分视图中填充下拉菜单

这里是我的按钮 -

<button type="button" id="createIssueBtn" class="btn btn-lg btn-info" data-toggle="collapse" data-target="#PopUpDiv">I need to create an issue</button><br/> 
<div id="PopUpDiv"></div> 

这里是关于页面级

<script type="text/javascript"> 

    $(document).ready(function() { 

     $('#createIssueBtn').bind("click", function() { 
      $.ajax({ 

       url: '@Url.Action("OpenPopUp", "Issues")', 
       dataType: 'html', 
       success: function (html) { 
        $('#PopUpDiv').html(html); 
       } 
      } 
     ) 
      $.ajax({ 

       dataType: "json", 
       url: '@Url.Action("GetIssueTypes", "Issues")', 
       success: function (data) { 

        $.each(data.IssueTypes, function (index, item) { 

         $("#selectIssueType").append(
          $("<option></option>") 
           .text(item.IssueType) 
           .val(item.IssueID) 
          ) 
        }) 
       } 
      }) 
     }) 

    }) 
</script> 

的JavaScript这是部分视图 -

<div id="AddIssues"><br/> 


<div > 
<select id="selectIssueType"> 
    <option value="0">Select Issue Type...</option> 
</select> 
    </div> 
    <br/> 
    <div>Enter the details of the issue (be specific):</div> 
    <div><input type="text" id="IssueDetails" /></div> 
    <br/> 
    <p>Location of Issue:</p> 
    <div><input type="text" id="IssueLocation" /></div> 
    <div>&nbsp;<br/></div> 
</div> 

我想填充选择。我把数据拿回来了,但绑定是把我扔掉的东西。

谢谢!

编辑

这里是我的IssueTypes对象 -

public class IssueTypes 
    { 
     public int IssueID { get; set; } 

     public string IssueType { get; set; } 
    } 

编辑

这是我GetIssueTypes功能的问题控制器 -

public ActionResult GetIssueTypes() 
     { 
      List<IssueTypes> issuesList = new List<IssueTypes>(); 

      issuesList = issueService.GetAllIssueTypes().data.Select(w => new IssueTypes() 
      { 
       IssueID = w.IssueID, 
       IssueType = w.IssueType 
      }).ToList(); 

      return Json(issuesList, JsonRequestBehavior.AllowGet); 
     } 
+0

为什么不直接使用'$( '#createIssueBtn')点击(函数(){...});' – JustinJmnz

+0

你。没有解释什么不是在你的问题工作!但是你的代码存在多个问题,尤其是在你第一次调用Ajax调用完成之前,ajax是异步调用和第二个Ajax调用可能会被执行,这意味着你将'