Hi,
ich bau mir gerade selbst nen AutoCompleter. (Ja, ich weiß, gibs schon fertig - aber ich hab bestimmte Anforderungen).
Nun löse ich schön auf onkeyup meine Suchfunktion aus - die rennt natürlich erst los wenn bestimmte Bedingungen erfüllt sind.
Nun hab ich mein Div mit den Ergebnisses der Suche schon geöffnet und es ist Zeit das man mit den Pfeiltasten da drin rumnavigieren kann.
Wie das eigentliche "Fangen" der Tasten von statten geht ist kein Problem - mir stellt sich nur die Frage, wie ich an das Event ran komme um die Tastencodes auszulesen. Ich könnte ja jetzt einfach an das onkeyup meines Input-Elements eine neue Funktion kleben, allerdings hab ich da ja schon meine eigentliche Suchfunktion...
Ich hoffe ihr wisst was ich meine, hier mal ein bischen Beispielcode:
PS: Ich benutze prototypeJS für die Ajax geschichte - sollte hier aber keine Rolle spielen.
Danke schonmal für euere Mühe...
ich bau mir gerade selbst nen AutoCompleter. (Ja, ich weiß, gibs schon fertig - aber ich hab bestimmte Anforderungen).
Nun löse ich schön auf onkeyup meine Suchfunktion aus - die rennt natürlich erst los wenn bestimmte Bedingungen erfüllt sind.
Nun hab ich mein Div mit den Ergebnisses der Suche schon geöffnet und es ist Zeit das man mit den Pfeiltasten da drin rumnavigieren kann.
Wie das eigentliche "Fangen" der Tasten von statten geht ist kein Problem - mir stellt sich nur die Frage, wie ich an das Event ran komme um die Tastencodes auszulesen. Ich könnte ja jetzt einfach an das onkeyup meines Input-Elements eine neue Funktion kleben, allerdings hab ich da ja schon meine eigentliche Suchfunktion...
Ich hoffe ihr wisst was ich meine, hier mal ein bischen Beispielcode:
PHP-Code:
//HTML
<input type="text" onkeyup="getAutoComplete(this);" />
//JS
function getAutoComplete(input){
var word = input.value;
//Ajax geflammsel für eine Ergebnis passend zu word
new Ajax.Request(url,{
method: 'get',
onSuccess: function(transport){
if(transport.responseText != ''){
var div = createSelectionDiv(); //Erstellt ein neues Div im DOM
div.innerHTML = transport.responseText;
input.parentNode.appendChild(div);
//Juhu, alles klar - aber wie "fang" ich jetzt die Events für die Keycodes?
}
}
});
}
Danke schonmal für euere Mühe...
Kommentar