2016-09-30 3 views
0

AJAX를 통해 채워지는 부트 스트랩 다중 선택 드롭 다운 상자가 있습니다. AJAX에서 값을 얻는 동안 다중 선택 드롭 다운을 채울 수 없습니다. 동일한 AJAX 함수를 사용하는 다른 일반 드롭 다운이 있으며 채워집니다. 내가 놓친 게 있니?부트 스트랩 다중 선택 채우기가 없습니다

나는 작동하지 않았다이 링크를 확인했다 나 Adding form elements dynamically to Bootstrap multiselect library

이것은 HTML을이기

var lstValue = ""; 
<select id='sellstValue" + obj.id + "' class='lstvalue' hidden='hidden'>" + lstValue + "</select> 

이것은 내가 콘솔의 콘솔 출력을 확인

var lstvalue = $('#' + rowId).find('.lstvalue').prop('id'); 
$.ajax({ 
      cache: false, 
      url: '@Url.Action("PopulateDropdown", "AdvancedSearch")', 
      type: "POST", 
      data: { Field: field } 
      }).done(function (data) { 
      console.log(data.value) 
      var listb = $('#' + lstvalue); 
      listb.empty(); 

      $.each(data.value, function (index, value) { 
      listb.append($('<option>', { 
       value: value, 
       text: value 
        }, '<option/>')) 
       }); 
      console.log($('#' + lstvalue)) 
      }); 

      $('#' + lstvalue).attr('multiple', 'multiple'); 
      $('#' + lstvalue).multiselect(); 

내 AJAX 코드 .log ($ ('#'+ lstvalue)) 예상되는 결과를 제공합니다.

답변

1

왜 이렇게 작동했는지는 모르겠지만 AJAX 호출에서 'async : false'를 추가하면 문제를 해결하는 데 도움이되었습니다.

+0

성공 콜백에 대한 액션을 트리거하지 않으며 AJAX의 특성은 비동기로 실행되므로 성공 콜백 또는 .done 메소드에 대한 액션을 일반적으로 연결합니다. AJAX 트랜잭션이 실패 할 때 오류를 표시 할 수 있으므로 도움이됩니다. –

+0

multiselect()는 루프에 넣을 수 없으며 처리기 이벤트를 발생시키는 동기화 함수입니다. – WeiYuan