1

ajax 呼び出しを実行した後、select2 (複数選択) フィールドに値を追加しようとしました。解決策を検索すると、次の質問が見つかりました: AJAX を使用する jQuery Select2 コントロールに項目を動的に追加します。

これは私の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

ここで何が間違っていますか?

4

1 に答える 1

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
            });
        }
于 2016-01-15T09:31:41.933 に答える