私はtypeahead.js
で作業していましたが、データはBloodHound remote
オプションを使用してロードしています。空きスペースでのajaxコールの防止typeahead.js
only spaces
をtextbox
に入力しても、それでもなおsends ajax call
と入力した場合を除き、すべてが正常に動作しています。
テキストボックスにonly spaces
がある場合、prevent ajax call
への道があるかどうかを知りたいです。私はtrim
のような同様の動作を探しています。
ここに私のコードです。私はprepare
機能を使用しようとしましたが、運がありません。
var dataSource = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('ProductID', 'ProductName'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: urlVar + "LoadAllProductByProductName/%QUERY",
wildcard: '%QUERY',
},
sufficient: 3,
});
const $tagsInput = $('.txtProductName')
$tagsInput.typeahead({
minLength: 3,
source: dataSource,
hint: false,
highlight: true,
isBlankString: false
},
{
limit: 10,
source: dataSource,
name: 'dataSource',
display: function (item) {
return item.ProductName
},
suggestion: function (data) {
return '<div>' + data.ProductName + '–' + data.ProductID + '</div>'
},
});
スペースがあるときにコールを送信するのはなぜですか?おそらくユーザーは結果を得られないだろう。 – ADyson
私はネットワークトリップを避けたいです。 – Mairaj
これは、3回以上の文字がある場合、ユーザーが実際に3つの空白を入力する可能性(何も返されないと思う可能性はほとんどありません)を入力するたびにネットワークトリップが生成されることを示しています。多くの努力を払い、ネットワークトラフィックを0.0001%削減する可能性があります。それはちょっと意味がないようだ。しかし、本当にしたいのであれば、 'source'属性のカスタム関数を作成して、検索条件に基づいて要求がその時点で先に進まないようにすることができます(空の配列を返します)。先読み文書にはメソッドシグニチャが表示されます – ADyson