2017-02-21 62 views
0

我有以下的HTML多選碼:附加選項,多選用ajax

<select class="multi-select" multiple="multiple" id="multiSelectId"> 

,我試圖用ajax動態元素添加到它:

function TestFunction(value) { 
    const selectMembers = $("#multiSelectId"); 
    selectMembers.empty(); 
    selectMembers.append('<option value="val">test1</option>'); 
    $.ajax({ 
    url: '@Url.Action("GetMemberById", "SystemAdmin")', 
    data: { 
     'memberId': value 
    }, 
    success: function(data) { 
     selectMembers.append('<option value="val">test2</option>'); 
     alert("test3"); 
    } 
    }); 
    selectMembers.multiSelect('refresh'); 
} 

所以怪異事情是,test1和test3工作正常,而test2根本不起作用,我找不到爲什麼它不起作用。有人有想法嗎?

+0

您是否嘗試將selectMembers聲明爲var而不是const?也許這就是問題 –

+0

一切工作正常[這裏](http://codepen.io/vilaskumkar/pen/YNmxKG),我用虛擬api進行測試 –

回答

0

您需要刷新success回調處理程序。記住ajax()是異步的。

function TestFunction(value) { 
    const selectMembers = $("#multiSelectId"); 
    selectMembers.empty(); 
    selectMembers.append('<option value="val">test1</option>'); 
    $.ajax({ 
     url: '@Url.Action("GetMemberById", "SystemAdmin")', 
     data: { 
      'memberId': value 
     }, 
     success: function(data) { 
      selectMembers.append('<option value="val">test2</option>'); 
      selectMembers.multiSelect('refresh'); 
      alert("test3"); 
     } 
    }); 
} 
+0

完美!這一直是問題,並感謝解釋! – Flox