Hier ist, was ich derzeit habe, leider kann ich nicht herausfinden, wie man autoFill
um mit jQuery-UI zu arbeiten... Es verwendet, um mit der geraden bis Autocomplete.js arbeiten
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/external/jquery.bgiframe-2.1.1.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/i18n/jquery-ui-i18n.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
var thesource = "RegionsAutoComplete.axd?PID=3"
$(function () {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
$.expr[':'].textEquals = function (a, i, m) {
return $(a).text().match("^" + m[3] + "$");
};
$("#regions").autocomplete({
source: thesource,
change: function (event, ui) {
//if the value of the textbox does not match a suggestion, clear its value
if ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0) {
$(this).val('');
}
else {
//THIS IS CURRENTLY NOT "LOGGING" THE "UI" DATA
//IF THE USER DOES NOT EXPLICITLY SELECT
//THE SUGGESTED TEXT
//PLEASE HELP!!!
log(ui.item ? ("Selected: " + ui.item.value + " aka " + ui.item.id) : "Nothing selected, input was " + this.value);
}
}
}).live('keydown', function (e) {
var keyCode = e.keyCode || e.which;
//if TAB or RETURN is pressed and the text in the textbox does not match a suggestion, set the value of the textbox to the text of the first suggestion
if ((keyCode == 9 || keyCode == 13) && ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0)) {
$(this).val($(".ui-autocomplete li:visible:first").text());
}
});
});
</script>
Mein JSON im Backend sieht wie folgt aus
[
{ "label": "Canada", "value": "Canada", "id": "1" },
{ "label": "United States", "value": "United States", "id": "2" },
]
Ich habe die Antwort aquí um mustMatch zum Laufen zu bringen, aber wenn ich das Eingabefeld mit der Tabulatortaste verlasse oder das Wort vollständig eingebe, anstatt den vorgeschlagenen Text auszuwählen, erhalte ich leider die Antwort "Nichts ausgewählt" anstelle eines Werts und einer ID.
Weiß jemand, wie man die ID aus der Autovervollständigung extrahiert, wenn man das Feld nicht wirklich auswählt?
Was ich suche, ist im Grunde etwas Ähnliches wie die Month (local):
Beispiel gefunden HIER: http://jquery.bassistance.de/autocomplete/demo/
Aber natürlich ist die Verwendung der jQuery-UI anstelle der jquery.autocomplete.js