Ajax 배열에서 select2 v4.0.0이 채워집니다. select2의 val을 설정하면 javascript 디버깅을 통해 올바른 항목 (제 경우 # 3)을 선택했음을 알 수 있지만 선택 상자에 표시되지 않지만 여전히 자리 표시자를 표시합니다.
나는 다음과 같은 것을보아야합니다.
내 양식 필드에서 :
<input name="creditor_id" type="hidden" value="3">
<div class="form-group minimal form-gap-after">
<span class="col-xs-3 control-label minimal">
<label for="Creditor:">Creditor:</label>
</span>
<div class="col-xs-9">
<div class="input-group col-xs-8 pull-left select2-bootstrap-prepend">
<select class="creditor_select2 input-xlarge form-control minimal select2 col-xs-8">
<option></option>
</select>
</div>
</div>
</div>
내 자바 스크립트 :
var initial_creditor_id = "3";
$(".creditor_select2").select2({
ajax: {
url: "/admin/api/transactions/creditorlist",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term,
c_id: initial_creditor_id,
page: params.page
};
},
processResults: function (data, page) {
return {
results: data
};
},
cache: true
},
placeholder: "Search for a Creditor",
width: "element",
theme: "bootstrap",
allowClear: true
}).on("select2:select", function (e) {
var selected = e.params.data;
if (typeof selected !== "undefined") {
$("[name='creditor_id']").val(selected.creditor_id);
$("#allocationsDiv").hide();
$("[name='amount_cash']").val("");
$("[name='amount_cheque']").val("");
$("[name='amount_direct']").val("");
$("[name='amount_creditcard']").val("");
}
}).on("select2:unselecting", function (e) {
$("form").each(function () {
this.reset()
});
("#allocationsDiv").hide();
$("[name='creditor_id']").val("");
}).val(initial_creditor_id);
선택 상자에 자리 표시자가 아닌 선택한 항목이 표시되도록하려면 어떻게해야합니까? AJAX JSON 응답의 일부로 이것을 보내야합니까?
과거에 Select2에는 사용자 지정 데이터 소스를 사용할 때마다 정의 된 initSelection이라는 옵션이 필요했기 때문에 구성 요소에 대한 초기 선택을 결정할 수있었습니다. 이것은 v3.5에서 잘 작동했습니다.
select
를 시도 할 때ajax
오류가 발생하면 해당 옵션 ajax는 select와 함께 사용할 수 없습니다.