이것은 select2 버전 4 이전의 코드에 속합니다.
select2
ajax에서 데이터를 가져 오는 간단한 코드가 있습니다.
$("#programid").select2({
placeholder: "Select a Program",
allowClear: true,
minimumInputLength: 3,
ajax: {
url: "ajax.php",
dataType: 'json',
quietMillis: 200,
data: function (term, page) {
return {
term: term, //search term
flag: 'selectprogram',
page: page // page number
};
},
results: function (data) {
return {results: data};
}
},
dropdownCssClass: "bigdrop",
escapeMarkup: function (m) { return m; }
});
이 코드는 작동하지만 편집 모드에있는 것처럼 값을 설정해야합니다. 사용자가 처음 값을 선택하면 값이 저장되고 해당 값을 편집해야 할 때 select2
이전에 선택한 값을 선택하기 위해 동일한 선택 메뉴 ( )에 나타나야 하지만 방법을 찾을 수 없습니다.
최신 정보:
HTML 코드 :
<input type="hidden" name="programid" id="programid" class="width-500 validate[required]">
Select2 프로그래밍 방식 액세스 는 이것과 함께 작동하지 않습니다.
답변
Select2 구성 요소의 “선택된”값을 동적으로 설정하려면 :
$('#inputID').select2('data', {id: 100, a_key: 'Lorem Ipsum'});
두 번째 매개 변수는 예상 값이있는 객체입니다.
최신 정보:
이것은 작동합니다. 새로운 select2에서 “a_key” 는 표준 select2 객체의 “text” 라는 점에 주목하고 싶었습니다 . 그래서:{id: 100, text: 'Lorem Ipsum'}
예:
$('#all_contacts').select2('data', {id: '123', text: 'res_data.primary_email'});
@NoobishPro 덕분에
답변
SELECT2 <V4
1 단계 : HTML
<input name="mySelect2" type="hidden" id="mySelect2">
2 단계 : Select2 인스턴스 만들기
$("#mySelect2").select2({
placeholder: "My Select 2",
multiple: false,
minimumInputLength: 1,
ajax: {
url: "/elements/all",
dataType: 'json',
quietMillis: 250,
data: function(term, page) {
return {
q: term,
};
},
results: function(data, page) {
return {results: data};
},
cache: true
},
formatResult: function(element){
return element.text + ' (' + element.id + ')';
},
formatSelection: function(element){
return element.text + ' (' + element.id + ')';
},
escapeMarkup: function(m) {
return m;
}
});
3 단계 : 원하는 값 설정
$("#mySelect2").select2('data', { id:"elementID", text: "Hello!"});
AJAX없이 select2 를 사용 하면 다음과 같이 할 수 있습니다.
<select name="mySelect2" id="mySelect2">
<option value="0">One</option>
<option value="1">Two</option>
<option value="2">Three</option>
</select>
/* "One" will be the selected option */
$('[name=mySelect2]').val("0");
다음과 같이 할 수도 있습니다.
$("#mySelect2").select2("val", "0");
SELECT2 V4
들어 V4 선택 2 직접 옵션을 추가 할 수 있습니다 / 다음과 같이 S :
<select id="myMultipleSelect2" multiple="" name="myMultipleSelect2[]">
<option value="TheID" selected="selected">The text</option>
</select>
또는 JQuery를 사용하여 :
var $newOption = $("<option selected='selected'></option>").val("TheID").text("The text")
$("#myMultipleSelect2").append($newOption).trigger('change');
다른 예
$("#myMultipleSelect2").val(5).trigger('change');
답변
HTML :
<select id="lang" >
<option value="php">php</option>
<option value="asp">asp</option>
<option value="java">java</option>
</select>
자바 스크립트 :
$("#lang").select2().select2('val','asp');
답변
또한 내가 시도한 것처럼 select2에서 ajax를 사용할 때 select2에서 새 값을 설정 하는 프로그래밍 제어 방법이 작동하지 않습니다! 이제 문제를 해결하기 위해 다음 코드를 작성합니다.
$('#sel')
.empty() //empty select
.append($("<option/>") //add option tag in select
.val("20") //set value for option to post it
.text("nabi")) //set a text for show in select
.val("20") //select option of select2
.trigger("change"); //apply to select2
여기 링크에서 전체 샘플 코드를 테스트 할 수 있습니다. https://jsfiddle.net/NabiKAZ/2g1qq26v/32/
이 샘플 코드에는 ajax select2가 있으며 버튼으로 새 값을 설정할 수 있습니다.
답변
var $option = $("<option selected></option>").val('1').text("Pick me");
$('#select_id').append($option).trigger('change');
이 추가를 시도한 다음 선택하십시오. AJAX 호출시 옵션을 복제하지 않습니다.
답변
나는 이것을했다-
$("#drpServices").select2().val("0").trigger("change");
답변
현재 버전에서 select2
– v4.0.1
다음과 같이 값을 설정할 수 있습니다.
var $example = $('.js-example-programmatic').select2();
$(".js-programmatic-set-val").on("click", function () { $example.val("CA").trigger("change"); });
// Option 2 if you can't trigger the change event.
var $exampleDestroy = $('.js-example-programmatic-destroy').select2();
$(".js-programmatic-set-val").on("click", function () { $exampleDestroy.val("CA").select2('destroy').select2(); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet" />
using "trigger(change)"
<select class="js-example-programmatic">
<optgroup label="Alaskan/Hawaiian Time Zone">
<option value="AK">Alaska</option>
<option value="HI">Hawaii</option>
</optgroup>
<optgroup label="Pacific Time Zone">
<option value="CA">California</option>
<option value="NV">Nevada</option>
<option value="OR">Oregon</option>
<option value="WA">Washington</option>
</optgroup>
<optgroup label="Mountain Time Zone">
<option value="AZ">Arizona</option>
<option value="CO">Colorado</option>
<option value="ID">Idaho</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NM">New Mexico</option>
<option value="ND">North Dakota</option>
<option value="UT">Utah</option>
<option value="WY">Wyoming</option>
</optgroup>
<optgroup label="Central Time Zone">
<option value="AL">Alabama</option>
<option value="AR">Arkansas</option>
<option value="IL">Illinois</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="OK">Oklahoma</option>
<option value="SD">South Dakota</option>
<option value="TX">Texas</option>
<option value="TN">Tennessee</option>
<option value="WI">Wisconsin</option>
</optgroup>
<optgroup label="Eastern Time Zone">
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="IN">Indiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="OH">Ohio</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WV">West Virginia</option>
</optgroup>
</select>
using destroy:
<select class="js-example-programmatic">
<optgroup label="Alaskan/Hawaiian Time Zone">
<option value="AK">Alaska</option>
<option value="HI">Hawaii</option>
</optgroup>
<optgroup label="Pacific Time Zone">
<option value="CA">California</option>
<option value="NV">Nevada</option>
<option value="OR">Oregon</option>
<option value="WA">Washington</option>
</optgroup>
<optgroup label="Mountain Time Zone">
<option value="AZ">Arizona</option>
<option value="CO">Colorado</option>
<option value="ID">Idaho</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NM">New Mexico</option>
<option value="ND">North Dakota</option>
<option value="UT">Utah</option>
<option value="WY">Wyoming</option>
</optgroup>
<optgroup label="Central Time Zone">
<option value="AL">Alabama</option>
<option value="AR">Arkansas</option>
<option value="IL">Illinois</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="OK">Oklahoma</option>
<option value="SD">South Dakota</option>
<option value="TX">Texas</option>
<option value="TN">Tennessee</option>
<option value="WI">Wisconsin</option>
</optgroup>
<optgroup label="Eastern Time Zone">
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="IN">Indiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="OH">Ohio</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WV">West Virginia</option>
</optgroup>
</select>
<button class="js-programmatic-set-val">set value</button>