4

次のコードがあります。

<input type="hidden" name="airport" tabindex="6" />


$('input[name="airport"]', '#details-form').select2({
            minimumInputLength: 3,
            multiple: true,
            separator: ';',
            width: 'off',
            initSelection : function (element, callback) {
                var data = [];
                $(element.val().split(';')).each(function () {
                    data.push({id: this, text: this});
                });
                callback(data);
            },
            ajax: { 
                url: History.getBasePageUrl() + 'get-airports-dictionary',
                dataType: 'json',
                data: function (term, page) {
                    return {
                        q: term
                    };
                },
                results: function (data, page) {
                    var code = parseInt(data[0]);
                    switch (code) {
                        case 0: 
                            return {results: data[1]};
                            break;
                        default:
                            window.Common.showError(data[1]);
                            break;
                    }
                }
            },
            formatResult: formatAirportResult,
            formatSelection: formatAirportSelection
        });

そのフィールドに既存の値を設定するまで、すべて正常に機能します - initSelection メソッド内の要素引数は空の値を示します!

$('input[name="airport"]', '#details-form').select2('val', '2');

次のコードで元の値を設定しようとしました。

$('input[name="airport"]', '#details-form').val('2');

動作しますが、select2 の val メソッド内のどこかで値が消えます..

今回の更新で Select2 のバージョン 3.4.0 を使用しています。

ありがとうございました

4

1 に答える 1