zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Wert in Input schreiben plus Focus und Cursorposition

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 01.12.2015, 11:58
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 01.12.2015, 12:42
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Ja gibt es.

Hilfreich wäre es deine JS Code zu sehen, damit wir Wissen was fehlt.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 01.12.2015, 13:51
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard

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;
Hier...

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...
Mit Zitat antworten
  #4 (permalink)  
Alt 01.12.2015, 14:22
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Du kannst aber die Cursorposition nur von dem Element setzen, das den Fokus hat. Von welchem Feld hast du den im ersten Post gesprochen?
Mit Zitat antworten
  #5 (permalink)  
Alt 01.12.2015, 16:13
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard

Die Cursorposition soll auch nur in dem Feld gesetzt werden, welches den Focus hat... Dies war ja jeweils das Feld mit der letzten Eingabe...
Mit Zitat antworten
  #6 (permalink)  
Alt 01.12.2015, 16:45
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Mir ist nicht klar was du machst. Wenn du in anderen inputfelder einen Wert setzt, verändert sich ja nicht der Cursor in einem anderen Feld.

Hier mal einen Beispiel:
Code:
<input id="" onkeyup="set()">
<input id="input">

<script type="text/javascript">

function set() {
    document.getElementById('input').value = Math.random();
}
</script>
Du kannst soviel tppen wie du willst, der Cursor bleibt immer an der aktuellen Stelle.
Mit Zitat antworten
  #7 (permalink)  
Alt 01.12.2015, 18:28
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
  #8 (permalink)  
Alt 01.12.2015, 19:46
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Parallax Beitrag anzeigen
Ich versuchs nochmal ganz easy zu erklären....
Es wäre vielleicht besser, es mal easy zu zeigen.

Zitat:
Zitat von Parallax Beitrag anzeigen
Die Inputs werden bei jeder Eingabe zusammen mit der Tabelle von PHP neu erzeugt.
Wieso spielt das eine Rolle? Wir reden doch über JS?

Zitat:
Zitat von Parallax Beitrag anzeigen
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....
Das verstehe ich schon nicht, du erzeugst Inputfelder mit PHP und schreibst dann vorher gespeicherte - wo gespeicherte? - Werte mit JS in die Felder?

Zitat:
Zitat von Parallax Beitrag anzeigen
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
Das ganze hätte man auch einfach zeigen können. Du meinst diesen Effekt:
Code:
<input id="input">

<script type="text/javascript">
onload = function() {
    document.getElementById('input').value = Math.random();
        document.getElementById('input').focus();
}
</script>
Eine Lösung könnte so aussehen
Code:
onload = function() {
    var text = '' + Math.random();
    var inp = document.getElementById('input')
    inp.value = text
    inp.focus();
    inp.setSelectionRange(text.length, text.length);
}
Mit Zitat antworten
  #9 (permalink)  
Alt 02.12.2015, 16:26
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 02.12.2015, 16:39
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Parallax Beitrag anzeigen
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...
Dann verstehe ich nciht, warum du die Element nicht direkt über PHP befüllst? Warum dieser umständliche Umweg?

Zitat:
Zitat von Parallax Beitrag anzeigen
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...
Nein, wieso sollte das so sein?
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:13 Uhr.