|
|||
Wert in Input schreiben plus Focus und Cursorposition
Hallo,
ich habe mal wieder ein Problem... Ich zeige Datensätze in einer HTML Tabelle an, die ich per PHP generieren lasse. Die Tabelle enthält Suchfelder, um die Datensätze nach bestimmten Werten durchsuchen zu können. Nach jedem Tastendruck wird die SQL Abfrage mit den ins Suchfeld eingegebenen Zeichen neu durchgeführt und die Tabelle neu geladen, inklusive der Suchfelder. Damit der Wert in den Suchfeldern erhalten bleibt, speichere ich diesen vor der Abfrage in einer Variable und setze ihn nach der Abfrage wieder ins Suchfeld ein. Der Focus des entsprechenden Suchfeldes wird ebenfalls gespeichert und im Anschluss wieder gesetzt. Im Chrome funktioniert das noch ganz gut, bei Firefox und IE tun sich jedoch Probleme auf, da der Cursor beim schreiben der Werte nicht ans Ende der Zeile gesetzt wird, sondern auf Position 0 stehen bleibt. Auch beim Chrome gibt es jedoch ein Problem, da immer wenn ich "Pfeil links" drücke, um zum Beispiel einen Buchstaben zu korregieren, dies natürlich als Tastendruck gewertet, die Abfrage neu ausgeführt und der Cursor wieder ans Ende des Input Feldes gesetzt wird. Gleiches tritt natürlich beim FF und IE bei "Pfeil nach rechts" auf.... Hat jemand hierfür eine elegante und hübsche Lösung? Grüße, Wagner Andre |
Sponsored Links |
|
|||
Code:
document.getElementById(such_focus_adr).focus(); //Focus setzen und Werte schreiben document.getElementById('atab_suche_nr').value = adr_sp_nr; document.getElementById('atab_suche_name').value = adr_sp_name; document.getElementById('atab_suche_vorname').value = adr_sp_vname; document.getElementById('atab_suche_str').value = adr_sp_str; document.getElementById('atab_suche_plz').value = adr_sp_plz; document.getElementById('atab_suche_ort').value = adr_sp_ort; such_focus_adr enthält die ID der Feldes welches die Suche ausgelöst hat... Die anderen Variablen enthalten die jeweiligen Einträge der Suchfelder, welche vor ausführen des PHP Skripts gespeichert wurden... |
|
|||
Ich versuchs nochmal ganz easy zu erklären....
Die Inputs werden bei jeder Eingabe zusammen mit der Tabelle von PHP neu erzeugt. Schreibe ich nun einfach die vorher gespeicherten Werte in die entsprechenden Inputs, steht zwar überall wieder der richtige Wert drin, allerdings hat KEIN Feld den Focus.... Nun gibt es 2 Varianten.... Den richtigen Focus NACH dem Schreiben der Werte setzen. Effekt: Chrome: Cursor am Ende der Zeile, FF und IE, Cursor am Anfang der Zeile Den richtigen Focus VOR dem Schreiben der Werte setzen. Effekt: Chrome und FF: Cursor am Ende der Zeile, IE: Cursor am Anfang der Zeile Gemeinsames Problem: Auch beim Drücken von Tasten "Pfeil links" oder "Pfeil rechts" springt der Cursor je nach Browser an den Anfang oder ans Ende... Mfg Parallax |
|
||||
Es wäre vielleicht besser, es mal easy zu zeigen.
Zitat:
Zitat:
Zitat:
Code:
<input id="input"> <script type="text/javascript"> onload = function() { document.getElementById('input').value = Math.random(); document.getElementById('input').focus(); } </script> Code:
onload = function() { var text = '' + Math.random(); var inp = document.getElementById('input') inp.value = text inp.focus(); inp.setSelectionRange(text.length, text.length); } |
|
|||
Der HTML Code wird über PHP erzeugt und dann an ein JS Script übergeben, welches es mit .innerHTML in eine DIV einfügt... war evtl etwas doof ausgedrückt...
Die vorher gespeicherten Werte befinden sich natürlich in JS Variablen... Deine Lösung würde aber auch dazu führen, das bei einem Tastendruck einer "Pfeil nach links" Taste, der Cursor wieder ans Ende gesetzt wird... Grüße, Parallax |
Sponsored Links |
|
||||
Zitat:
Nein, wieso sollte das so sein? |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Zugriff auf Wert in einer Tabelle? | Ann | Javascript & Ajax | 3 | 03.09.2014 10:17 |
Focus bei ID geht nicht, warum??? | denniz | CSS | 2 | 20.04.2010 00:10 |
Cursorposition in einem input ermitteln | Scheppertreiber | Javascript & Ajax | 3 | 26.03.2010 12:03 |