Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <select name="airfromcity" class="form-control ui-autocomplete-input" id="airfromcity" autocomplete="off" style="display: none;">
- <option value="">Select one...</option>
- <option value="ABE">Allentown PA</option>
- <option value="ABI">Abilene TX</option>
- <option value="ABQ">Albuquerque NM</option>
- <option value="ABR">Aberdeen SD</option>
- <option value="ACV">Eureka CA</option>
- <option value="ACY">Atlantic City NJ</option>
- <option value="AEX">Alexandria VA</option>
- <option value="AGR">Agra India</option>
- <option value="AGS">Augusta GA</option>
- <option value="AHN">Athens GA</option>
- <option value="AIY">Atlantic City NJ -Bader</option>
- </select>
- (function( $ ) {
- $.widget( "custom.combobox", {
- _create: function() {
- this.wrapper = $( "<span>" )
- .addClass( "custom-combobox" )
- .insertAfter( this.element );
- this.element.hide();
- this._createAutocomplete();
- this._createShowAllButton();
- },
- _createAutocomplete: function() {
- var selected = this.element.children( ":selected" ),
- value = selected.val() ? selected.text() : "";
- this.input = $( "<input>" )
- .appendTo( this.wrapper )
- .val( value )
- .attr( "title", "" )
- .addClass( "custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left" )
- .autocomplete({
- delay: 0,
- minLength: 0,
- source: $.proxy( this, "_source" )
- })
- .tooltip({
- tooltipClass: "ui-state-highlight"
- });
- this._on( this.input, {
- autocompleteselect: function( event, ui ) {
- ui.item.option.selected = true;
- this._trigger( "select", event, {
- item: ui.item.option
- });
- },
- autocompletechange: "_removeIfInvalid"
- });
- },
- _source: function( request, response ) {
- var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
- response( this.element.children( "option" ).map(function() {
- var text = $( this ).text();
- if ( this.value && ( !request.term || matcher.test(text) ) )
- return {
- label: text,
- value: text,
- option: this
- };
- }) );
- },
- _removeIfInvalid: function( event, ui ) {
- // Selected an item, nothing to do
- if ( ui.item ) {
- return;
- }
- // Search for a match (case-insensitive)
- var value = this.input.val(),
- valueLowerCase = value.toLowerCase(),
- valid = false;
- this.element.children( "option" ).each(function() {
- if ( $( this ).text().toLowerCase() === valueLowerCase ) {
- this.selected = valid = true;
- return false;
- }
- });
- // Found a match, nothing to do
- if ( valid ) {
- return;
- }
- // Remove invalid value
- this.input
- .val( "" )
- .attr( "title", value + " didn't match any item" )
- .tooltip( "open" );
- this.element.val( "" );
- this._delay(function() {
- this.input.tooltip( "close" ).attr( "title", "" );
- }, 2500 );
- this.input.data( "ui-autocomplete" ).term = "";
- },
- _destroy: function() {
- this.wrapper.remove();
- this.element.show();
- }
- });
- })( jQuery );
- $(function() {
- $( "#airfromcity" ).combobox();
- $( "#toggle" ).click(function() {
- $( "#airfromcity" ).toggle();
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement