2016-09-06 2 views
0

Im 임 프로젝트에서 Select2 jQuery 플러그인 (v4.0.3)을 사용하고 있습니다. select2 인스턴스는 ajax 소스이며, 프로그래밍 방식으로 옵션을 선택하는 방법이 있는지 궁금합니다. 이 하지 아약스 공급 때AJAX 출처의 프로그래밍 방식으로 선택하기 Select2

$('#input-field').val(['123','456']).trigger('change') 

:

나는 이전을 통해 값을 설정 할 수 있었다. 이제는 Ajax 소스 Select2 인스턴스로이 작업을 수행해야합니다.

jsFiddle 인스턴스를 만들었으므로 의미를 알 수 있습니다. 값 설정을 클릭하면 select2 인스턴스에서 2 개의 값을 선택해야합니다.

감사합니다.

P.이 난 truetags 옵션을 설정하려고하므로, 어떠한 값은 (는 AJAX 쿼리의 경우에도 그 결과가 아니라) 선택받을 수 있으며, 여전히 나던 일

+0

은 AJAX 호출이 올바른 값을 얻지 못하는 것처럼 보이지만 select2 상자를 지우고 "값 설정"링크를 클릭하면 모든 것이 작동합니다. – Dekel

답변

1

그것은 당신이 프로그래밍 뭔가를 선택할 수 있음을 나타납니다 드롭 다운에서 이전에 검색 및 선택되지 않았습니다.

Select2는 AJAX 데이터를 사용할 때 이전에 알려지지 않은 옵션이 발견되면 기본 select 요소에 추가하여 작동하는 것으로 보입니다. .val()은 원하는 항목을 추가하려고 시도하지만 이미있는 항목 만 추가하고 나머지는 무시합니다. Select2는 change 이벤트를 가져오고 이에 따라 렌더를 조정합니다.

이 적어도 유용한 방향을 보내야합니다 :

$('#set-selected').click(function(e){ 
    e.preventDefault(); 
    var $select = $('.js-data-example-ajax'); 
    var targets = ["28200583","3620194"]; 
    targets.forEach(function(v,i,a){ 
    if(!$('option[value='+v+']',$select).length) { 
     $select.append('<option value="'+v+'">'+v+'</option>'); 
    } 
    }); 
    $select.val(targets).trigger('change'); 
}); 

보통 이러한 UI 라이브러리와 상황이 경우 .select2()에 대한 호출을 통해, 당신은 제어 당신이 초기화 같은 방식으로 조작하는 것입니다. 그러나이 시나리오에서 필요한 것을 수행하는 명령을 찾을 수 없습니다.

+0

어제 밤 같은 결론에 이르렀습니다. 나는 GIT 문제를 발견했다. 나는 그 라인을 따라 무엇인가라고 생각했다. 단지 Select2 플러그인이'$ .val()'호출에 전달 된 값에 대한 AJAX 요청을하기에 충분히 좋을 것이라고 기대했지만, 이것도 마찬가지로 효과적이다. 감사! – Justin