1

そのため、検索wtformがあり、その1つのフィールドはselect2で表されます。ajaxを介して別の選択フィールドに依存してロードされます。ローディングステップは正常に動作します。しかし、フォームを送信して結果データを受け取ったときに、選択した値をselect2フィールドに戻すことはできません.idしかないため、initSelectionのコールバックメソッドにはidとテキストの両方が必要です。または、私は何か間違ったことをしているのかもしれません。

ここに選択フィールドがあります

$("#source").select2({
    placeholder: "Выберите источник",
    initSelection: function(element, callback){
        callback({id: element.val(), text:element.val()})
    },
    query: function(query){
        query.callback(source_data)
    }
})

そして、私は以下のようなものが欲しいです。このような ID を持つデータは select2 に既に存在します。唯一の問題は、それを選択する方法です。

callback({id: element.val())
4

1 に答える 1

1

これが私がこの問題を解決できた方法です:

//sample preloaded select data
var preload_data = [{id: '1', text:'<span id="user1">John</span>'},{id: '2', text:'<span id="user2">Tim</span>'}, {id: '3', text:'<span id="user3">George</span>'}]

//the initSelection method
initSelection : function (element, callback) {
    var data = [];

    var lookup = {};
    for (var i = 0, len = preload_data.length; i < len; i++) {
        lookup[preload_data[i].id] = preload_data[i];
    }
    $(element.val().split(",")).each(function() {
        data.push({id: this, text: lookup[this].text});
    });
    callback(data);
}
于 2013-12-06T16:56:27.187 に答える