Select2リモートデータを持つオプションを提供するウィジェットが、空のスペースだけを入力しても呼び出しを行っていることに気付きました。これは通常、私に空の配列を返しますが、私はこの呼び出しを完全に取り除きたいと思います。リモートデータでSelect2の空文字列に対するサーバーコールを防止するにはどうすればいいですか?
ここに私がしたことがあります。
Select2リモートデータを持つオプションを提供するウィジェットが、空のスペースだけを入力しても呼び出しを行っていることに気付きました。これは通常、私に空の配列を返しますが、私はこの呼び出しを完全に取り除きたいと思います。リモートデータでSelect2の空文字列に対するサーバーコールを防止するにはどうすればいいですか?
ここに私がしたことがあります。
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;
}
}
...
})
詳細のスニペット。
Select2にはこれを処理するminimumInputLength
オプションがあります。ユーザーがさらに文字を入力する必要があるときに通知を表示し、十分な入力があったときに要求を送信します。
私は 'minimumInputLength'を1と指定しましたが、私にとってはうまくいかなかったようです。 – jagzviruz