6

次の関数は、URL から json データを取得し、select 要素に jQuery を設定します。私はSelect2を使用して、オートコンプリート機能を備えたフィールドでそのドロップダウンを変換しています。

選択した要素が表示されるとすぐに「未定義」という書き込みが表示されることを除けば、すべて正常に機能します。オートコンプリートとドロップダウンは完全に機能します。空の 'option' 要素を追加してもデータ プレースホルダーを使用しようとしましたが、成功しませんでした。

function CitiesList(callback){
 $.getJSON(document.URL+'getCities/sdfsfs', function(data){
    var html = '';
    var len = data.length;
    var option = '<option></option>';
    for (var i = 0; i< len; i++) {
        html += '<option value="' + data[i] + '">' + data[i] + '</option>';
    }
    $('.select_cities select').append(option);
    $('.select_cities select').append(html);
    if(callback && typeof callback == 'function'){
        callback.call(null);
    }

});
}

            <select data-placeholder="Select a city" name="cities" id="cities">
            </select>

「select_cities」は、select 要素の div ラッパーです。

4

5 に答える 5

13

これは現在4.0で機能しています。結果フォーマッターに送信されるメッセージは、オブジェクト ( GitHub の例repo.textを参照) で構成するか、プロパティから呼び出される関数内でハードコードすることができtemplateResultます。例えば:

templateResult: formatResult,

//...

function formatResult (result) {

if (result.loading) return "Searching...";

GitHub のサンプル"Searching..."内で文字列を検索してもヒットがなかったため、構成を見つけるのは最も簡単なことではありませんでしたが、振り返ってみると非常に直感的でした。

于 2015-06-16T09:30:05.153 に答える
10

私は最近これに遭遇しました。Select2 の新しいバージョンでは、対応するオプションなしでデフォルト オプションが設定されている場合、valueまたはvalueが空の文字列である場合に問題が発生するようです。次に例を示します。

<option value="" selected="selected">Select something</option>

次のような空でない値を明示的に定義するか、Select2 が最初のオプションをデフォルトとして使用するように設定しますvalue="0"placeholderOption: 'first'

$('#select2-field').select2({
    placeholderOption: 'first'
});
于 2013-08-10T14:16:36.703 に答える
2

この問題は、select2 の最新 (3.4.2) バージョンで対処されています。アップグレードすれば、準備完了です!

于 2013-08-30T17:08:11.460 に答える
-1

スクリプトに次の行を追加します。これは機能するはずです。

<script>
    $(document).ready(function() { $("select").select2(); });
</script>
于 2013-07-24T10:21:20.210 に答える