3

検索に使用するSelect2入力があります(リモートデータ)。現在、次のように機能します。

ユーザーがもう 1 文字入力すると、自動的に検索が開始されます

さて、楽しい部分:

次の動作を追加する必要があります。

ユーザーがこの入力にフォーカスしてEnterボタンを押すと、実際に入力にその文字を書き込まずに、1文字「*」で検索をトリガーする必要があります。

文字 * を含む検索リクエストを送信するだけですが、入力は空のままにする必要があります。

Select2コードをいじらずにそれは可能ですか?

私のコード:

$("#account").select2({
    language: "en",
    ajax: {
        url: window.urls.ajax_account_search,
        dataType: 'json',
        delay: 500,
        data: function(params){
            console.log(params);
            return {
                query: params.term,
                page: params.page
            }
        },
        processResults: function(data, params){
            return {
                results: data.items
            }
        },
        cache: true
    },
    escapeMarkup: function(m) { return m; },
    templateResult: formatSearchResult,
    templateSelection: formatSearchSelection,
    minimumInputLength: 1
});
4

1 に答える 1

0

入力時に検索をトリガーする (送信される) 代わりに、検索用語が存在しないときに*送信することができます。*これは要件を削除することも意味しminimumInputLengthますが、それはあなたが探しているものと一致しているようです。

$("#account").select2({
    language: "en",
    ajax: {
        url: window.urls.ajax_account_search,
        dataType: 'json',
        delay: 500,
        data: function(params){
            return {
                query: params.term || '*', // send * if there is no term
                page: params.page
            }
        },
        processResults: function(data, params){
            return {
                results: data.items
            }
        },
        cache: true
    },
    escapeMarkup: function(m) { return m; },
    templateResult: formatSearchResult,
    templateSelection: formatSearchSelection
});
于 2016-02-07T02:12:54.843 に答える