Tôi có select2 v4.0.0 được điền từ một mảng Ajax. Nếu tôi đặt giá trị của select2, tôi có thể thấy thông qua gỡ lỗi javascript rằng nó đã chọn đúng mục (# 3 trong trường hợp của tôi), tuy nhiên điều này không được hiển thị trong hộp chọn, nó vẫn đang hiển thị trình giữ chỗ.
Trong khi tôi sẽ thấy một cái gì đó như thế này:
Trong các trường biểu mẫu của tôi:
<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>
Javascript của tôi:
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);
Làm cách nào tôi có thể làm cho hộp chọn hiển thị mục đã chọn thay vì trình giữ chỗ? Có lẽ tôi nên gửi cái này như một phần của phản hồi AJAX JSON?
Trước đây, Select2 yêu cầu một tùy chọn gọi là initSelection được xác định bất cứ khi nào nguồn dữ liệu tùy chỉnh được sử dụng, cho phép lựa chọn ban đầu cho thành phần được xác định. Điều này làm việc tốt cho tôi trong v3.5.
select
vớiajax
nó mọc lỗi, tùy chọn đó ajax của nó không được phép có chọn ...