Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
jQuery UI Autocomplete
#1
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:
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! Smile
Zitieren
#2
Problem gelöst: Liste hat sich um 1000px nach rechts verzogen, so dass ich das nicht gesehen habe - Lösung war CSS-Code hinzufügen.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Regex JavaScript/JQuery für wörtliche Rede Amaryllion 8 4.623 24.02.2016, 11:17
Letzter Beitrag: Amaryllion
  Netbeans jquery code completion MatthiasK 2 2.076 05.07.2015, 15:04
Letzter Beitrag: MatthiasK
  Slider jquery 11.1.1 für mybb 1.8 navis 7 3.827 07.11.2014, 21:35
Letzter Beitrag: Risu
  AutoComplete - Suche Lukαs 4 2.158 06.05.2013, 21:12
Letzter Beitrag: Falkenauge Mihawk
  [JS] JQuery und Protype, JQuery nutzen? baeckerman83 3 3.168 13.04.2011, 07:48
Letzter Beitrag: thebod