2017-02-21 23 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