我尝试在执行ajax调用后向select2(多选)字段添加值。 我搜索解决方案并找到这个问题: Dynamically add item to jQuery Select2 control that uses AJAX
这是我的JS:
$scope.addProjectType = function(name) {
$http.post('/ajax/projecttype/addprojecttype', {
name: name
}).success(function(data, status, headers, config) {
$("#projectTypes").select2('data', {
id: 1, name: 'test'
})
});
}
一切都很好,但在执行ajax成功功能时,这给了我错误
错误:state_id.split不是函数 格式@ http://ttos2.localhost/vendor/assets/global/js/plugins.js:269:31 I< .addSelectedChoice @ http://ttos2.localhost/vendor/assets/global/plugins/select2/select2.min.js:6:54786 I< .updateSelection /< @ http://ttos2.localhost/vendor/assets/global/plugins/select2/select2.min.js:6:53377
我在这里做错了什么?
答案 0 :(得分:2)
它是如何运作的......:
$scope.addProjectType = function(name) {
$http.post('/ajax/projecttype/addprojecttype', {
name: name
}).success(function(data, status, headers, config) {
$("#projectTypes").append('<option value="' + data.id + '">' + data.name + '</option>');
// get a list of selected values if any - or create an empty array
var selectedValues = $("#projectTypes").val();
if (selectedValues == null) {
selectedValues = new Array();
}
selectedValues.push(data.id); // add the newly created option to the list of selected items
$("#projectTypes").val(selectedValues).trigger('change'); // have select2 do it's thing
});
}