2017-02-21 16 views
0

У меня есть следующий HTML множественного выбора кода:вариант Append для множественного выбора с помощью 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

Perfect! Это была проблема и спасибо за объяснение! – Flox