The Typeahead extension is a Yii 2 wrapper widget for for the Twitter Typeahead.js plugin with certain custom enhancements. The latest release uses the typeahead.js fork from corejavascript. The yii2-widget-typeahead
extension is a jQuery based replacement for text inputs providing search and typeahead functionality. It is inspired by twitter.com's autocomplete search functionality and based on Twitter's typeahead.js, which is described as a fast and fully-featured autocomplete library. The widget is specially styled for Bootstrap 3.x, 4.x, or 5.x. The widget allows graceful degradation to a normal HTML text input, if the browser does not support JQuery. You can also setup model validation rules for the widget like any other field. The extension offers two variations of the widget implementation:
-
TypeaheadBasic
: This widget is a basic implementation of the typeahead.js plugin without any suggestion engine. It uses a javascript substring matcher and Regular Expression matching to query and display suggestions.VIEW DEMO
-
Typeahead
: This widget is an advanced implementation of the typeahead.js plugin with the BloodHound suggestion engine and the Handlebars template compiler.VIEW DEMO
NOTE: This extension is a sub repo split of yii2-widgets. The split has been done since 08-Nov-2014 to allow developers to install this specific widget in isolation if needed. One can also use the extension the previous way with the whole suite of yii2-widgets.
The preferred way to install this extension is through composer. Check the composer.json for this extension's requirements and dependencies. Read this web tip /wiki on setting the minimum-stability
settings for your application's composer.json.
To install, either run
$ php composer.phar require kartik-v/yii2-widget-typeahead "*"
or add
"kartik-v/yii2-widget-typeahead": "*"
to the require
section of your composer.json
file.
Refer the CHANGE LOG for details on changes to various releases.
You can refer detailed documentation and demos for TypeaheadBasic or Typeahead for understanding the usage of the extension.
use kartik\typeahead\TypeaheadBasic;
use kartik\typeahead\Typeahead;
// TypeaheadBasic usage with ActiveForm and model
echo $form->field($model, 'state_3')->widget(TypeaheadBasic::classname(), [
'data' => $data,
'pluginOptions' => ['highlight' => true],
'options' => ['placeholder' => 'Filter as you type ...'],
]);
// Typeahead usage with ActiveForm and model
echo $form->field($model, 'state_4')->widget(Typeahead::classname(), [
'dataset' => [
[
'local' => $data,
'limit' => 10
]
],
'pluginOptions' => ['highlight' => true],
'options' => ['placeholder' => 'Filter as you type ...'],
]);
yii2-widget-typeahead is released under the BSD-3-Clause License. See the bundled LICENSE.md
for details.