Twitter Bootstrapの先行入力機能が大好きですが、やりたいことが少しあります。入力ボックスのドロップダウンが自動入力されるように、最適な一致(または最初の一致の方がおそらく簡単)を取得したいと考えています。
私が探している機能は、まさにGoogleChromeOmniboxの動作方法です。
誰かがこれの解決策を知っていますか?
Twitter Bootstrapの先行入力機能が大好きですが、やりたいことが少しあります。入力ボックスのドロップダウンが自動入力されるように、最適な一致(または最初の一致の方がおそらく簡単)を取得したいと考えています。
私が探している機能は、まさにGoogleChromeOmniboxの動作方法です。
誰かがこれの解決策を知っていますか?
少し遊んで、私はそのコードを思いつきます。
$('.omnitype').each(function() {
var $omnitype = $(this);
$omnitype.typeahead({
source: mySource,
items: 4,
sorter: function(items) {
// Bootstrap code
/* ... */
// Modified code (delay the return of sorted)
var sorted = beginswith.concat(caseSensitive, caseInsensitive);
// if there is a first element, we fill the input select what we added
var first = sorted.length && sorted[0];
if (first) {
var origin = this.$element.val();
this.$element.val(first);
createSelection(this.$element.get(0), origin.length, first.length);
}
// back to the intended behavior
return sorted;
}
});
});
私はこの回答を使用して機能を提供しましたcreateSelection
(本当に必要かどうかはわかりません)。
キーが期待どおりに機能しないため、まだかなりの調整が必要です。直感的な動作を自然に与えるいくつかのチェックを使用して、プラグイン全体を再コーディングする方が簡単な場合があります。
または、プラグインの前に主要なイベントをキャッチして、適切なことを実行できる場合があります。