2016-03-25 2 views
0

Select2リモートデータを持つオプションを提供するウィジェットが、空のスペースだけを入力しても呼び出しを行っていることに気付きました。これは通常、私に空の配列を返しますが、私はこの呼び出しを完全に取り除きたいと思います。リモートデータでSelect2の空文字列に対するサーバーコールを防止するにはどうすればいいですか?

ここに私がしたことがあります。

答えて

0

Select2プラグインを使用すると、transportオプションを使用して独自のAJAXコールハンドラを定義できます。ドキュメントから

Selectセレクトは、あなたのAPIにリクエストを送信するためにajax.transportで定義された転送方法を使用しています。デフォルトでは、この転送方法はjQuery.ajaxですが、これは変更できます

不要な呼び出しをすべて排除する方法は次のとおりです。

$('select').select2({ 
... 
    ajax: { 
    transport: function (params, success, failure) { 
     if (!params.data.q.trim().length) { 
     return false; 
     } 
     var $request = $.ajax(params); 

     $request.then(success); 
     $request.fail(failure); 

     return $request; 
    } 
    } 
... 
}) 

詳細のスニペット。

0

Select2にはこれを処理するminimumInputLengthオプションがあります。ユーザーがさらに文字を入力する必要があるときに通知を表示し、十分な入力があったときに要求を送信します。

+0

私は 'minimumInputLength'を1と指定しましたが、私にとってはうまくいかなかったようです。 – jagzviruz

関連する問題