* </div>
*/
+/**
+ @class SearchBar
+ The search bar widget is used to search for page content. This widget can be placed in the header, option header, or page content.
+
+ To add a search bar widget to the application, use the following code:
+
+ <label for="search-basic">Search Input:</label>
+ <input type="search" name="search" id="searc-basic" value="" data-mini="true" />
+
+ Tizen supports many search bar options as described in the jQueryMobile documentation for search bar options.
+ The search bar can define callbacks for events as described in the jQueryMobile documentation for search bar events.
+ You can use methods with the search bar as described in the jQueryMobile documentation for search bar methods.
+*/
+
(function ( $, undefined ) {
$.widget( "tizen.searchbar", $.mobile.widget, {
themeclass = " ui-body-" + theme,
focusedEl,
clearbtn,
- searchicon,
cancelbtn,
defaultText,
defaultTextClass,
newClassName,
newStyle,
newDiv,
+ searchimage,
inputedText;
function toggleClear() {
focusedEl
.addClass( "ui-input-search-default" )
.removeClass( "ui-input-search-wide" );
- cancelbtn
- .addClass( "ui-btn-cancel-show" )
- .removeClass( "ui-btn-cancel-hide" );
- searchicon.hide();
}
function hideCancel() {
focusedEl
.addClass( "ui-input-search-wide" )
.removeClass( "ui-input-search-default" );
- cancelbtn
- .addClass( "ui-btn-cancel-hide" )
- .removeClass( "ui-btn-cancel-show" );
-
- if ( input.val() == "" ) {
- searchicon.show();
- }
toggleClear();
}
//SLP --start search bar with cancel button
focusedEl.wrapAll( "<div class='input-search-bar'></div>" );
- searchicon = $("<div class='ui-image-search ui-image-searchfield'></div>")
- .bind('click', function ( event ) {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return false;
- }
- searchicon.hide();
-
- input
- .blur()
- .focus();
- } )
- .appendTo( focusedEl );
-
- cancelbtn = $( "<a href='#' class='ui-input-cancel' title='clear text'>Cancel</a>" )
- .bind('click', function ( event ) {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return false;
- }
- event.preventDefault();
- event.stopPropagation();
-
- input
- .val( "" )
- .blur()
- .trigger( "change" );
-
- hideCancel();
- } )
- .appendTo( focusedEl.parent() )
- .buttonMarkup( {
- iconpos: "cancel",
- corners: true,
- shadow: true
- } );
+ searchimage = $("<div class='ui-image-search'></div>").appendTo( focusedEl );
// Input Focused
input
focusedEl.removeClass( $.mobile.focusClass );
});
- // Input Blured
- /* When user touch on page, it's same to blur */
- /* FIXME : if there is no problem, please remove this codes..
- $( "div.input-search-bar" ).tap( function ( event ) {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return false;
- }
- input.focus();
- event.stopPropagation();
- } );
-
- var currentPage = input.closest( ".ui-page" );
- $( currentPage ).bind("tap", function ( e ) {
- if ( input.attr( "disabled" ) == "disabled" ) {
- return;
- }
-
- if ( $( input ).is( ":focus" ) ) {
- focusedEl.removeClass( "ui-focus" );
- hideCancel();
- input.blur();
- }
- } );*/
-
// Default Text
defaultText = input.jqmData( "default-text" );
} );
}
- if ( input.val() ) {
- searchicon.hide();
+ if ( !input.attr("placeholder") ) {
+ input.attr( "placeholder", "Search" );
}
},
disable: function () {
this.element.attr( "disabled", true );
this.element.parent().addClass( "ui-disabled" );
- this.element.parent().parent().find(".ui-input-cancel").addClass( "ui-disabled" );
$( this.element ).blur();
},
enable: function () {
this.element.attr( "disabled", false );
this.element.parent().removeClass( "ui-disabled" );
- this.element.parent().parent().find(".ui-input-cancel").removeClass( "ui-disabled" );
$( this.element ).focus();
}
} );