У мене є select2 v4.0.0, який заповнюється з масиву Ajax. Якщо я встановив val для select2, я можу побачити за допомогою налагодження 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>
Мій javascript:
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, яку визначали щоразу, коли використовувалось нестандартне джерело даних, що дозволяло визначати початковий вибір компонента. Це добре працювало для мене у версії 3.5.
select
доajax
нього, виникає помилка, цей параметр ajax не дозволяється з select ...