我有一个从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>
Run Code Online (Sandbox Code Playgroud)
我的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
}, …
Run Code Online (Sandbox Code Playgroud) 如何使用select2在输入框上设置默认值?这是我的HTML
<input type="text" id="itemId0" value="Item no. 1">
Run Code Online (Sandbox Code Playgroud)
和我的javascript:
$("#itemId0").select2({
placeholder: 'Select a product',
formatResult: productFormatResult,
formatSelection: productFormatSelection,
dropdownClass: 'bigdrop',
escapeMarkup: function(m) { return m; },
minimumInputLength:1,
ajax: {
url: '/api/productSearch',
dataType: 'json',
data: function(term, page) {
return {
q: term
};
},
results: function(data, page) {
return {results:data};
}
}
});
function productFormatResult(product) {
var html = "<table><tr>";
html += "<td>";
html += product.itemName ;
html += "</td></tr></table>";
return html;
}
function productFormatSelection(product) {
var selected = "<input type='hidden' name='itemId' …
Run Code Online (Sandbox Code Playgroud) 我正在使用Select2 4.0.0-rc.2。
“ 选项”页面指出以下内容:initSelection
过去,Select2要求
initSelection
在使用自定义数据源时就定义一个选项,从而可以确定组件的初始选择。它已由数据适配器current
上的方法代替。
我仅找到了使用的旧版本Select2的示例initSelection
(请参阅使用Ajax在Select2上设置加载时的初始值)
如何使用数据适配器加载默认数据?
这是我的初始代码(是树枝)
$("#{{ id }}").select2({
ajax: {
url: "{{ path(attr.path) }}",
dataType: 'json',
{% if attr.placeholder is defined %}
placeholder: '{{ attr.placeholder }}',
{% endif %}
delay: 250,
data: function (term) {
return term;
},
processResults: function (data) {
return {results: data};
}
},
templateResult: function(data){
return '<img width="30" src="'+data.image+'">'+data.text;
},
templateSelection: function(data){
return '<img width="30" src="'+data.image+'">'+data.text;
},
cache: true,
escapeMarkup: function (markup) …
Run Code Online (Sandbox Code Playgroud)