12.02.2012, 17:22
Salü MyBB-Gemeinde
Ich habe ein Problem mit der Autocomplete-Funktion von jQuery UI. Das Problem sieht so aus: Wenn ich einen unvollständigen Benutzername eingebe, sollte eine Liste kommen (remote Source), die jedoch nicht erscheint. Zuerst habe ich gedacht, die Source wird garnicht abgerufen. Dann habe ich im entsprechenden Script eine Art Debugging-Funktion hinzugefügt (Ich schreibe in eine Datei, was wann rein kommt und was raus geht).
Resultat: Source wird abgerufen.
Dann habe ich gedacht, im JS-Code ist ein Fehler und habe die Errorconsole von Firefox gestartet. Keine Errors.
Mit den Ergebnissen der letzten Erkenntnisse habe ich dann den HTML-Code untersucht.
Ergebnis: Im Input-Feld ist autocomplete off. Wenn ich jetzt aber autocomplete auf on setze, passiert dennoch nichts sichtbares.
Darausfolgend überreiche ich euch folgende Codes:
Autocomplete JS-Datei:
Das Feld mit dem Autocomplete:
Input:
Output:
PHP-Resultate:
Vielen Dank für eure wegweisenden Hilfestellungen im Voraus!
Ich habe ein Problem mit der Autocomplete-Funktion von jQuery UI. Das Problem sieht so aus: Wenn ich einen unvollständigen Benutzername eingebe, sollte eine Liste kommen (remote Source), die jedoch nicht erscheint. Zuerst habe ich gedacht, die Source wird garnicht abgerufen. Dann habe ich im entsprechenden Script eine Art Debugging-Funktion hinzugefügt (Ich schreibe in eine Datei, was wann rein kommt und was raus geht).
Resultat: Source wird abgerufen.
Dann habe ich gedacht, im JS-Code ist ein Fehler und habe die Errorconsole von Firefox gestartet. Keine Errors.
Mit den Ergebnissen der letzten Erkenntnisse habe ich dann den HTML-Code untersucht.
Ergebnis: Im Input-Feld ist autocomplete off. Wenn ich jetzt aber autocomplete auf on setze, passiert dennoch nichts sichtbares.
Darausfolgend überreiche ich euch folgende Codes:
Autocomplete JS-Datei:
Code:
$(function() {
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
$(".autocomplete")
// don't navigate away from the field on tab when selecting an item
.bind("keydown", function(event) {
if(event.keyCode === $.ui.keyCode.TAB && $( this ).data("autocomplete").menu.active) {
event.preventDefault();
}
})
.autocomplete({
source: function(request, response) {
$.getJSON("member.php?act=return&was=autocomplete", {
term: extractLast(request.term)
}, response);
},
search: function() {
// custom minLength
var term = extractLast(this.value);
if(term.length < 2) {
return false;
}
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function(event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join(", ");
return false;
}
});
});
Das Feld mit dem Autocomplete:
Input:
Code:
<input type="text" name="uids" class="autocomplete" id="text_input" value="" />
Output:
Code:
<input id="text_input" class="autocomplete ui-autocomplete-input" type="text" value="" name="uids" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">
PHP-Resultate:
Code:
12.02.2012 15:18:55 - Input: Fa | Database: FalkenaugeMihawk | Output: ["FalkenaugeMihawk"]
Vielen Dank für eure wegweisenden Hilfestellungen im Voraus!