aboutsummaryrefslogtreecommitdiffstats
path: root/include/jquery_ui/development-bundle/demos/autocomplete/combobox.html
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-07-09 23:23:20 -0700
committerfriendica <info@friendica.com>2012-07-09 23:23:20 -0700
commit1215de575d9cda66b434f21dafdf44f986638b71 (patch)
tree6bc706e2b5575c537ba41c1c511c5ac21c169d70 /include/jquery_ui/development-bundle/demos/autocomplete/combobox.html
parent5355193b6342910ec69ec172846027ac9353d2b3 (diff)
downloadvolse-hubzilla-1215de575d9cda66b434f21dafdf44f986638b71.tar.gz
volse-hubzilla-1215de575d9cda66b434f21dafdf44f986638b71.tar.bz2
volse-hubzilla-1215de575d9cda66b434f21dafdf44f986638b71.zip
slider
Diffstat (limited to 'include/jquery_ui/development-bundle/demos/autocomplete/combobox.html')
-rw-r--r--include/jquery_ui/development-bundle/demos/autocomplete/combobox.html194
1 files changed, 194 insertions, 0 deletions
diff --git a/include/jquery_ui/development-bundle/demos/autocomplete/combobox.html b/include/jquery_ui/development-bundle/demos/autocomplete/combobox.html
new file mode 100644
index 000000000..3c7876a5d
--- /dev/null
+++ b/include/jquery_ui/development-bundle/demos/autocomplete/combobox.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Autocomplete - Combobox</title>
+ <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+ <script src="../../jquery-1.7.2.js"></script>
+ <script src="../../ui/jquery.ui.core.js"></script>
+ <script src="../../ui/jquery.ui.widget.js"></script>
+ <script src="../../ui/jquery.ui.button.js"></script>
+ <script src="../../ui/jquery.ui.position.js"></script>
+ <script src="../../ui/jquery.ui.autocomplete.js"></script>
+ <link rel="stylesheet" href="../demos.css">
+ <style>
+ .ui-combobox {
+ position: relative;
+ display: inline-block;
+ }
+ .ui-combobox-toggle {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ margin-left: -1px;
+ padding: 0;
+ /* adjust styles for IE 6/7 */
+ *height: 1.7em;
+ *top: 0.1em;
+ }
+ .ui-combobox-input {
+ margin: 0;
+ padding: 0.3em;
+ }
+ </style>
+ <script>
+ (function( $ ) {
+ $.widget( "ui.combobox", {
+ _create: function() {
+ var input,
+ self = this,
+ select = this.element.hide(),
+ selected = select.children( ":selected" ),
+ value = selected.val() ? selected.text() : "",
+ wrapper = this.wrapper = $( "<span>" )
+ .addClass( "ui-combobox" )
+ .insertAfter( select );
+
+ input = $( "<input>" )
+ .appendTo( wrapper )
+ .val( value )
+ .addClass( "ui-state-default ui-combobox-input" )
+ .autocomplete({
+ delay: 0,
+ minLength: 0,
+ source: function( request, response ) {
+ var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
+ response( select.children( "option" ).map(function() {
+ var text = $( this ).text();
+ if ( this.value && ( !request.term || matcher.test(text) ) )
+ return {
+ label: text.replace(
+ new RegExp(
+ "(?![^&;]+;)(?!<[^<>]*)(" +
+ $.ui.autocomplete.escapeRegex(request.term) +
+ ")(?![^<>]*>)(?![^&;]+;)", "gi"
+ ), "<strong>$1</strong>" ),
+ value: text,
+ option: this
+ };
+ }) );
+ },
+ select: function( event, ui ) {
+ ui.item.option.selected = true;
+ self._trigger( "selected", event, {
+ item: ui.item.option
+ });
+ },
+ change: function( event, ui ) {
+ if ( !ui.item ) {
+ var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" ),
+ valid = false;
+ select.children( "option" ).each(function() {
+ if ( $( this ).text().match( matcher ) ) {
+ this.selected = valid = true;
+ return false;
+ }
+ });
+ if ( !valid ) {
+ // remove invalid value, as it didn't match anything
+ $( this ).val( "" );
+ select.val( "" );
+ input.data( "autocomplete" ).term = "";
+ return false;
+ }
+ }
+ }
+ })
+ .addClass( "ui-widget ui-widget-content ui-corner-left" );
+
+ input.data( "autocomplete" )._renderItem = function( ul, item ) {
+ return $( "<li></li>" )
+ .data( "item.autocomplete", item )
+ .append( "<a>" + item.label + "</a>" )
+ .appendTo( ul );
+ };
+
+ $( "<a>" )
+ .attr( "tabIndex", -1 )
+ .attr( "title", "Show All Items" )
+ .appendTo( wrapper )
+ .button({
+ icons: {
+ primary: "ui-icon-triangle-1-s"
+ },
+ text: false
+ })
+ .removeClass( "ui-corner-all" )
+ .addClass( "ui-corner-right ui-combobox-toggle" )
+ .click(function() {
+ // close if already visible
+ if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
+ input.autocomplete( "close" );
+ return;
+ }
+
+ // work around a bug (likely same cause as #5265)
+ $( this ).blur();
+
+ // pass empty string as value to search for, displaying all results
+ input.autocomplete( "search", "" );
+ input.focus();
+ });
+ },
+
+ destroy: function() {
+ this.wrapper.remove();
+ this.element.show();
+ $.Widget.prototype.destroy.call( this );
+ }
+ });
+ })( jQuery );
+
+ $(function() {
+ $( "#combobox" ).combobox();
+ $( "#toggle" ).click(function() {
+ $( "#combobox" ).toggle();
+ });
+ });
+ </script>
+</head>
+<body>
+
+<div class="demo">
+
+<div class="ui-widget">
+ <label>Your preferred programming language: </label>
+ <select id="combobox">
+ <option value="">Select one...</option>
+ <option value="ActionScript">ActionScript</option>
+ <option value="AppleScript">AppleScript</option>
+ <option value="Asp">Asp</option>
+ <option value="BASIC">BASIC</option>
+ <option value="C">C</option>
+ <option value="C++">C++</option>
+ <option value="Clojure">Clojure</option>
+ <option value="COBOL">COBOL</option>
+ <option value="ColdFusion">ColdFusion</option>
+ <option value="Erlang">Erlang</option>
+ <option value="Fortran">Fortran</option>
+ <option value="Groovy">Groovy</option>
+ <option value="Haskell">Haskell</option>
+ <option value="Java">Java</option>
+ <option value="JavaScript">JavaScript</option>
+ <option value="Lisp">Lisp</option>
+ <option value="Perl">Perl</option>
+ <option value="PHP">PHP</option>
+ <option value="Python">Python</option>
+ <option value="Ruby">Ruby</option>
+ <option value="Scala">Scala</option>
+ <option value="Scheme">Scheme</option>
+ </select>
+</div>
+<button id="toggle">Show underlying select</button>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>A custom widget built by composition of Autocomplete and Button. You can either type something into the field to get filtered suggestions based on your input, or use the button to get the full list of selections.</p>
+<p>The input is read from an existing select-element for progressive enhancement, passed to Autocomplete with a customized source-option.</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>