[英]Select2, append doesn't show the title
所以我在选择2自动完成框时遇到了这个问题,当我尝试向该框创建对象时,它创建得很好,但是该对象的名称未显示在框中,唯一显示的是“ X以清除对象。
该框的主要焦点是设置数据库中的值,以便以后对其进行编辑(添加,删除等)。 我要执行的方法是先从数据库中获取对象,然后在select2框中创建它。
这是我的JavaScript文件:
$('#recipefield').select2({
id: function(data){return data.id;},
maximumSelectionLength: 5,
minimumSelectionLength: 3,
ajax: {
url: function () {
return getTypedAutoCompleteUrl();
},
dataType: 'json',
processResults: function (data) {
return {
results: data
};
}
},
templateResult: formatState,
templateSelection: formatState
});
});
function getTypedAutoCompleteUrl() {
return '/api/v1/recipe/' + $('#menutype').val();
}
function formatState (state) {
if (!state.id) {
return state.text;
}
return state.title;
}
这就是我用来将对象添加到框中的内容:
var data = {
id: 1,
text: 'text'
};
var newOption = new Option(data.text, data.id, true, true);
$('#recipefield').append(newOption).trigger('change');
所以,最后我确实做到了,也许对某人有用。
创建了此功能。
function recipeHelper(){
var recipeList = $("#recipefield").select2("data");
for(i=0; i<recipeList.length; i++){
var recipeObject = recipeList[i];
recipeObject.name = recipeObject.text;
}
$("#recipefield").trigger('change');
}
“ recipeHelper”函数在
$(document).ready(function() {
...
recipeHelper();
});
希望它能帮助到别人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.