Die letzten 5 Postings in diesem Thema » Alle anzeigen
von diwie
gibs nicht. nach stundenlangen suchen habe ich in einem quelltext die lösung gefunden. all das ist doch bereits integriert!! ;)
1:
2:
3:
new Ajax.Autocompleter ('bezeichner', 'auto', 'get_db_data.php', {minChars: 2});
in den manuals hatte ich leider keine angaben zu gefunden.
von diwie
Ich gebe ein zeichen ein - noch noch kein autocomplete.
ich gebe ein zweites ein - autocomplete startet.
wenn jetzt der user ein backspace eingibt, soll autocomplete nicht wieder mit einem zeichen starten (lange abfrage), daher setze ich bei betätigung von backspace den wert im feld auf 0.
wenn ich jetzt wieder ein (das erste sichtbare im feld) zeichen eingebe, startet autocomplete wieder sofort: ;(
function zaehlen (wert,taste) {
if (!taste)
taste = window.event;
if (taste.keyCode=='8') {
document.rl100.bezeichner.value='';
}
laenge = wert.length;
if (laenge >= 1) {
new Ajax.Autocompleter('bezeichner', 'auto1', 'get_db_data.php', {indicator: 'indicator1'});
}
}
gibt es im ajax.autocompleter kein eingebautes delay oder eine prüfung der anzahl der eingebenen zeichen?
von chip
Was genau soll "kommt er [...] durcheinander" heißen? Wenn onkeyup nicht funktioniert probier' doch einfach mal onkeypress.
von diwie
Ich habe ein Formular mit zwei Input Feldern zur Abfrage aus einer Datenbank. Dafür nutze ich den Ajax.Autocompleter um anhand der Eingaben die eine vorselektierte Liste zu erstellen. Klappt soweit auch super. ABER.
Da ca. 20.000 Datensätze in der DB enthalten sind, dauert Abfrage im Hintergrund bei nur einem eingebenen Zeichen entsprechend lange. Ab zwei schnell hintereinander eingegebenen Zeichen ist die Performance schon ordentlich.
Daher möchte ich den Ajax.Autocompleter erst nach 2 oder 3 eingegebenen Zeichen im Input Feld starten.
Wie löse ich das am besten mit JS?
Mit der Abfrage this.value.length über ein onKeyup Event kommt er bei der Benutzung der Backspace Taste leider durcheinander.