从3.5版本迁移到4.0.3版本后,我在select2中遇到了一些麻烦。
我有一个带输入的表单:
<div class="form-group ">
<label class="control-label" for="equipment">Address of equipment</label>
<select class="form-control" id="equipment" name="equipment"></select>
</div>
并有一个js代码:
$("#equipment").select2({
minimumInputLength: 2,
ajax: {
type: 'GET',
url: options.equipmentsURL,
data: function (params) {
return {
q: params.term // search term
};
},
processResults: function (data, page) {
var objects = data.objects;
var results = [];
for (var i=0; i < objects.length; i++){
var text = objects[i]['__str__'];
results.push({'id': objects[i].id, 'text': text});
}
return {results:results};
}
},
});
Ajax加载工作正常,但如果用户选择某个选项并重新加载表单(刷新浏览器或在表单中出现一些错误),则会重置所选选项。为避免3.5版本中出现此问题,我从输入中获取选定值:
$('equipment').val();
并初始化select2 usinig initSelection回调。 在4.0版本中,我无法找到获取所选值的位置,选择输入在重新加载后没有选项。