<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Autocomplete - Combobox</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<style>
.custom-combobox {
position: relative;
display: inline-block;
}
.custom-combobox-toggle {
position: absolute;
top: 0;
bottom: 0;
margin-left: -1px;
padding: 0;
}
.custom-combobox-input {
margin: 0;
padding: 5px 10px;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$.widget("custom.combobox",
{
_create: function()
{
this.wrapper = $( "<span>" )
.addClass( "custom-combobox" )
.appendTo(this.element);
this._createAutocomplete();
this._createShowAllButton();
},
_createAutocomplete: function()
{
var $src = $(this.option("src"));
$src.hide();
var selected = $src.children( ":selected" ).first();
var 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({
classes: {
"ui-tooltip": "ui-state-highlight"
}
});
this._on( this.input, {
autocompleteselect: function(event, ui)
{
ui.item.option.selected = true;
this._trigger( "select", event, {
item: ui.item.option
});
}
});
},
_createShowAllButton: function()
{
var input = this.input;
var wasOpen = false;
$("<a>")
.attr("tabIndex", -1)
.attr("title", "Show All Items")
.tooltip()
.appendTo(this.wrapper)
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass( "ui-corner-all" )
.addClass( "custom-combobox-toggle ui-corner-right" )
.on( "mousedown", function()
{
wasOpen = input.autocomplete("widget").is(":visible");
})
.on( "click", function()
{
input.trigger("focus");
// Close if already visible
if (wasOpen)
{
return;
}
// Pass empty string as value to search for, displaying all results
input.autocomplete( "search", "" );
});
},
_source: function( request, response )
{
var $src = $(this.option("src"));
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response($src.children("option").map(function()
{
var text = $(this).val();
if (this.value && (!request.term || matcher.test(text)))
return {
label: text,
value: text,
option: this
};
}));
},
_destroy: function()
{
var $src = $(this.option("src"));
this.wrapper.remove();
$src.show();
}
});
$("#dst").combobox({ src: "select" });
$("select").toggle();
$("select").on("change", function(e)
{
$("#link").empty();
$("<a>")
.attr("href", $(this).children(":selected").val())
.html($(this).children(":selected").text())
.appendTo($("#link"));
});
});
</script>
</head>
<body>
<div id="link"></div>
<div id="dst" class="ui-widget">
<select id="Tabellen" size="5">
<option selected value="liste_privat/eigene_tabellen/tabelle1.html">Eigene Tabelle1</option>
<option value="liste_privat/eigene_tabellen/tabelle2.html">Eigene Tabelle2</option>
<option value="liste_privat/eigene_tabellen/tabelle3.html">Eigene Tabelle3</option>
<option value="liste_privat/eigene_tabellen/tabelle4.html">Eigene Tabelle4</option>
<option value="liste_privat/eigene_tabellen/tabelle5.html">Eigene Tabelle5</option>
<option value="liste_privat/vorlagen_tabellen/tabelle1.html">Private Vorlagen Tabelle1</option>
<option value="liste_privat/vorlagen_tabellen/tabelle2.html">Private Vorlagen Tabelle2</option>
<option value="liste_privat/vorlagen_tabellen/tabelle3.html">Private Vorlagen Tabelle3</option>
<option value="liste_privat/vorlagen_tabellen/tabelle4.html">Private Vorlagen Tabelle4</option>
<option value="liste_privat/vorlagen_tabellen/tabelle5.html">Private Vorlagen Tabelle5</option>
</select>
<select id="Tabellen2" size="5">
<option value="liste_privat/eigene_tabellen/tabelle1.html">Eigene Tabelle1</option>
<option selected value="liste_privat/eigene_tabellen/tabelle2.html">Eigene Tabelle2</option>
<option value="liste_privat/eigene_tabellen/tabelle3.html">Eigene Tabelle3</option>
<option value="liste_privat/eigene_tabellen/tabelle4.html">Eigene Tabelle4</option>
<option value="liste_privat/eigene_tabellen/tabelle5.html">Eigene Tabelle5</option>
<option value="liste_privat/vorlagen_tabellen/tabelle1.html">Private Vorlagen Tabelle1</option>
<option value="liste_privat/vorlagen_tabellen/tabelle2.html">Private Vorlagen Tabelle2</option>
<option value="liste_privat/vorlagen_tabellen/tabelle3.html">Private Vorlagen Tabelle3</option>
<option value="liste_privat/vorlagen_tabellen/tabelle4.html">Private Vorlagen Tabelle4</option>
<option value="liste_privat/vorlagen_tabellen/tabelle5.html">Private Vorlagen Tabelle5</option>
</select>
</div>
</body>
</html>