2017-01-10 3 views
0

select2 4.0.2を使用して、AJAXルックアップを行う選択ボックスを提供しています。しかし、私がしたいのは、入力を開始するまで<select>のように<option>タグのオプションを表示してから、AJAX経由でサーバーにアクセスして、クエリ文字列が空でないときにさらに検索することです。select2で静的な値を使用してからajaxを検索する

基本的に問題は、AJAXクエリが少し遅いですが、ページの読み込み時に最初の結果をプリロードできることです。 <option>のようにロードする必要はありません。JSON配列などに埋め込むことができます。

+0

data: (params) -> ret.q = params.term ret.page = params.page o = ({ id: $(e).val(), display_name: $(e).text() } for e, index in this.children() when index > 0) ret.options = o return JSON.stringify(ret) 

それから私は、AJAX呼び出しを作るか、またはローカルデータを使用するかどうかを決定するトランスポート機能を宣言します。 ''を使い、 '.select2()'をイベントに追加してください。 – PHPglue

+0

私はあなたが通常の選択を入力することはできません知っている、私はあなたが入力を開始するまで、select2を通常の選択のように動作させる方法を尋ねています。 –

答えて

0

これは私がやったことです。 select2 ajaxオプションでは、まずデータ関数で、オプションから値とテキストを隠します(なぜなら、私はトランスポート関数にアクセスできないからです)。申し訳ありませんが、これはCoffeeScriptのである:あなたは、通常の選択を入力することはできません

transport: (params, success, failure) -> 
    # Get query string 
    params_data = $.parseJSON(params.data) 
    q = params_data.q 
    if !q || q.length < 3 
    q_reg = new RegExp(q, "i") 
    data = 
     incomplete_results: false 
     items: params_data.options.filter (element) -> 
     q_reg.test(element.display_name) 
    success(data) 
    else 
    $.ajax(params).done(success).fail(failure) 
関連する問題