Search Bar
The search bar component is used to search for page content. It can be placed in the header or within the page content.
| Note |
|---|
| This component has been DEPRECATED since Tizen 2.4 and will be deleted in Tizen 3.0. To support Backward compatibility, please import tau.support-2.3.js. |
| Since 2.4, SearchBar component has been renamed to SearchInput. To use this component, please refer SearchInput component. |
Table of Contents
Default Selectors
By default, all <input> elements with the type="search" or type="tizen-search" attribute are displayed as search bars. In addition, all elements with the data-type="search", data-type="tizen-search", or class="ui-searchbar" attribute are displayed as search bars.
Manual Constructor
To manually create a search bar component, use the component constructor from the tau namespace (RECOMMENDED):
<div data-role="page" id="search-bar-page">
<div data-role="header">
<label for="search-bar">Search Input:</label>
<input name="search" id="search-bar"/>
</div>
<div data-role="content" id="search-bar-content">
<ul data-role="listview">
<li>Hairston</li>
<li>Hansbrough</li>
<li>Allred</li>
<li>Hanrahan</li>
<li>Egan</li>
<li>Dare</li>
</ul>
</div>
<script>
(function(document)
{
var inputElement = document.getElementById("search-bar"),
contentElement = document.getElementById("search-bar-content"),
contentChildren = contentElement.getElementsByTagName("li"),
contentChildrenLength = contentChildren.length,
pageElement = document.getElementById("search-bar-page"),
searchBar;
function changeHandle(event)
{
var i,
child,
childText,
value = searchBar.value();
for (i = 0; i < contentChildrenLength; i++)
{
child = contentChildren.item(i);
childText = child.textContent.toLowerCase();
if (!value || ~childText.indexOf(value))
{
child.style.display = "block";
}
else
{
child.style.display = "none";
}
}
}
function createPageHandle()
{
searchBar = tau.widget.SearchBar(inputElement, {icon: "call"});
searchBar.on("change keyup", changeHandle);
}
pageElement.addEventListener("pagecreate", createPageHandle);
}(document));
</script>
</div>
The constructor requires an HTMLElement parameter to create the component, and you can get it with the document.getElementById() method. The constructor can also take a second parameter, which is an object defining the configuration options for the component.
If the jQuery library is loaded, you can use its method (support for backward compatibility):
<div data-role="page" id="search-bar-page">
<div data-role="header">
<label for="search-bar">Search Input:</label>
<input name="search" id="search-bar"/>
</div>
<div data-role="content" id="search-bar-content">
<ul data-role="listview">
<li>Hairston</li>
<li>Hansbrough</li>
<li>Allred</li>
<li>Hanrahan</li>
<li>Egan</li>
<li>Dare</li>
</ul>
</div>
<script>
(function(document)
{
var inputElement = document.getElementById("search-bar"),
contentElement = document.getElementById("search-bar-content"),
contentChildren = contentElement.getElementsByTagName("li"),
contentChildrenLength = contentChildren.length,
pageElement = document.getElementById("search-bar-page");
function changeHandle(event)
{
var i,
child,
childText,
value = inputElement.value;
for (i = 0; i < contentChildrenLength; i++)
{
child = contentChildren.item(i);
childText = child.textContent.toLowerCase();
if (!value || ~childText.indexOf(value))
{
child.style.display = "block";
}
else
{
child.style.display = "none";
}
}
}
function createPageHandle()
{
$("#search-bar").searchbar(inputElement, {icon: "call"}).on("change keyup", changeHandle);
}
$("#search-bar-page").on("pagecreate", createPageHandle);
}(document));
</script>
</div>
HTML Examples
To create a search bar in the header:
<div data-role="page" id="search-bar-page">
<div data-role="header">
<label for="search-bar">Search Input:</label>
<input type="search" name="search" id="search-bar"/>
</div>
<div data-role="content" id="search-bar-content">
<ul data-role="listview">
<li>Hairston</li>
<li>Hansbrough</li>
<li>Allred</li>
<li>Hanrahan</li>
<li>Egan</li>
<li>Dare</li>
</ul>
</div>
<script>
(function(document)
{
var inputElement = document.getElementById("search-bar"),
contentElement = document.getElementById("search-bar-content"),
contentChildren = contentElement.getElementsByTagName("li"),
contentChildrenLength = contentChildren.length;
function changeHandle(event)
{
var i,
child,
childText,
value = inputElement.value;
for (i = 0; i < contentChildrenLength; i++)
{
child = contentChildren.item(i);
childText = child.textContent.toLowerCase();
if (!value || ~childText.indexOf(value))
{
child.style.display = "block";
}
else
{
child.style.display = "none";
}
}
}
inputElement.addEventListener("change", changeHandle);
inputElement.addEventListener("keyup", changeHandle);
}(document));
</script>
</div>
Options
The following table lists the options for the search bar component.
| Option | Input type | Default value | Description |
|---|---|---|---|
| data-cancel-btn | boolean | false | Sets whether the cancel button is shown. |
| data-icon | string | null | null | Icon type on the action button. Possible values are the same as in the button component. If the option is not set, the action button is not shown. |
Methods
To call a method on the component, use one of the existing APIs:
TAU API (RECOMMENDED):
<script> var searchBarElement = document.getElementById('search-bar'), searchBar = tau.widget.SearchBar(searchBarElement); searchBar.methodName(methodArgument1, methodArgument2, ...); </script>jQuery API (support for backward compatibility):
<script> $(".selector").searchbar('methodName', methodArgument1, methodArgument2, ...); </script>
Summary
| Method | Description |
|---|---|
SearchBar disable() |
Disables the search bar. |
SearchBar enable() |
Enables the search bar. |
string value(string? value) |
Gets or sets an input text value. |
disable-
Disables the search bar.
SearchBar disable()
The method sets the disabled attribute for the search bar and changes the look of the search bar to the disabled state.
Return value:
Type Description SearchBar Returns this. Code example (TAU API RECOMMENDED):
<script> var element = document.getElementById("searchbar"), searchBarWidget = tau.widget.SearchBar(element); searchBarWidget.disable(); </script>Code example (jQuery API support for backward compatibility):
<script> $("#searchbar").searchbar("disable"); </script> enable-
Enables the search bar.
SearchBar enable()
The method removes the disabled attribute from the search bar and changes the look of the search bar to the enabled state.
Return value:
Type Description SearchBar Returns this. Code example (TAU API RECOMMENDED):
<script> var element = document.getElementById("searchbar"), searchBarWidget = tau.widget.SearchBar(element); searchBarWidget.enable(); </script>Code example (jQuery API support for backward compatibility):
<script> $("#searchbar").searchbar("enable"); </script> value-
Gets or sets an input text value.
string value(string? value)
Since: 2.3
If you call the method with a parameter, it is set as the new input text value. Otherwise, the method returns the input text value.
Parameters:
Parameter Type Required/optional Default value Description value string Optional New input text value. Return value:
Type Description string In the get mode, returns the input text value. Code example (TAU API RECOMMENDED):
var searchBarElement = document.getElementById("searchbar"), searchBarWidget = tau.widget.SearchBar(searchBarElement), value = searchBarWidget.value();Code example (jQuery API support for backward compatibility):
/* Value contains the input text */ $("#searchbar").searchbar("value"); /* "New text" is the new input value */ $("#searchbar").searchbar("value", "New text");