Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
swesp
Beiträge: 21
Registriert: 17.11.2008, 09:34

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von swesp » 14.11.2016, 10:12

Hallo Leute,

ich suche nach einer Möglichkeit in einem vorausgefülltem Textfeld, den Cursor an den Feldanfang zu setzen.
In dem Feld soll die Email-Adresse eingegeben werden und ist mit @xxx.de vorausgefüllt.

Wenn der Benutzer nun das Formular ausfüllt und in das o.g. Feld springt, steht der Cursor immer am Ende.
Geht das irgendwie den automatisch vor @xxx.de zu stellen?

Java Script oder FormCalc zählen leider nicht zu meinen Stärke und im Aktionsgenerator hab ich nichts passendes gefunden.

Vielen Dank schon mal.
Beste Grüße

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von radzmar » 14.11.2016, 19:29

Mit dem folgenden Skript im change-Event, kannst Du die Cursorposition beeinflussen. Solange das Feld den Wert „@domain.org“ hat, wird der eingegebene Text davor eingegeben.

Code: Alles auswählen

if (xfa.event.prevText == "@domain.org") {
	xfa.event.selStart = xfa.event.selEnd = 0;
}

swesp
Beiträge: 21
Registriert: 17.11.2008, 09:34

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von swesp » 15.11.2016, 09:37

Hallo radzmar,

vielen Dank.
Funktioniert genau so wie du es beschrieben hast.

Leider "blinkt" der Cursor bei Feldeinritt zunächst hinter dem voreingestellten Text.
Es ist dadurch für den Benutzer nicht ersichtlich, dass die Eingabe davor stattfindet.
Lässt sich das noch irgendwie verändern?

Gruß swesp

Andreas H.
Beiträge: 533
Registriert: 14.04.2015, 11:10

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von Andreas H. » 15.11.2016, 13:47

Hallo swep,

vielleicht verstehe ich den Ansatz nicht aber warum nicht einfach zwei Textfelder kombinieren?

Ein Textfeld für die Eingabe vor dem @-Zeichen und ein Textfeld mit der Domain.
 
Im ersten Textfeld werden unnötige Leerzeichen durch einen Code gelöscht. Im drittem Textfeld wird Textfeld eins und zwei zusammengesetzt und die noch übrig gebliebenen Leerzeichen mittels replace() ersetzt. Natürlich könnte man jetzt noch auf die Idee kommen das dritte Textfeld auszublenden sodass man den Inhalt nicht sehen kann aber damit weiterarbeiten möchte?!
 
Gruß
Andreas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Andreas H.
Beiträge: 533
Registriert: 14.04.2015, 11:10

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von Andreas H. » 15.11.2016, 13:58

.... und weil alles ausbaufähig ist wird die Eingabe des Users nun auch noch validiert.

Gruß
Andreas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

swesp
Beiträge: 21
Registriert: 17.11.2008, 09:34

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von swesp » 16.11.2016, 12:15

Hallo Andreas,

ist natürlich auch ne Möglichkeit....
Habe jetzt einfach 2 Textfelder gemacht. Das erste zur Eingabe mit dynamischer Breite.

Vielen Dank für die Idee.
Manchmal verrennt man sich in einen Gedanken und sieht das Einfache nicht.

Gruß
swesp

Andreas H.
Beiträge: 533
Registriert: 14.04.2015, 11:10

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von Andreas H. » 16.11.2016, 21:19

Hallo swep,

wo Du dich nun entschieden hast. Wobei die Lösung von radzmar genau Deine Frage beantwortet hat aber der User ja nicht weiß das gleich am Anfang geschrieben wird, denke ich auch die Lösung mit zwei Textfelder ist für den User einfacher zu verstehen. Die Lösung von radzmar werde ich mir aber merken, wer weiß… Danke dafür!

Also habe ich die Funktionen noch mal überarbeitet, die waren nur mal eben so zusammen geklickt und nicht fehlerfrei. Nun werden die Leerzeichen nach Eingabe der E-Mail (im lokalen Teil) nach dem “Exit“ aus dem Feld gelöscht. Nun hast Du ja die Feldbreite auf “Passend erweitert“ eingestellt. Was passiert denn, wenn Du in das Feld z.B. nur den Buchstaben “m“ 50-mal eingibst? Soll ja User geben die sowas probieren… Wo endet das Feld in der Breite? Hier macht es dann keinen Sinn, wenn das Feld aus dem PDF verschwindet und eine E-Mail auf zwei drei Zeilen sieht auch nicht aus.
Für den Layoutzweck kann man mit “minW und maxW“ dafür sorgen das der Kompromiss zwischen “max. Zeichen auf eine bestimmte Länge begrenzen“ und “Textfeldbreite passend erweitern“ die günstigere Variante ist. Das heißt, sobald Du in das Feld klickst wird das Feld auf maxW verbreitert, so weiß der User wieviel Platz er hat. Beim verlassen könnte man minW auf 0 stellen, sieht aber doof aus, wenn der User nichts Eingegeben hat, also ist minW auf 100mm beschränkt. Ein Bug beim Klick ins Feld und ohne Eingabe raus löste die Meldung aus: Ungültige E-Mail-Adresse pp. der ist behoben. Die Eingabe wird korrekt überwacht. Hier hat mich gewundert das ohne replace(Leerzeichen ersetzen) die Validierung in der "E-Mail Ausgabe" nicht funktionierte, erst mit war es dann rund und das war es auch schon was ich hier an dieser Stelle noch ergänzen musste

Die Praxis liegt als Anlage bereit.

Gruß
Andreas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

swesp
Beiträge: 21
Registriert: 17.11.2008, 09:34

Wie Cursor bei vorausgefülltem Feld an Feldanfang setzen?

Beitrag von swesp » 18.11.2016, 10:08

Hallo Andreas,
hast dir ja richtig Arbeit gemacht :shock:

Wie ich Eingangs schon geschrieben habe ist JavaScript nicht so mein Ding.
Soll heißen, ich habe Null Ahnung davon.
Das was ich brauche bastele ich mir irgendwie zusammen oder frage eben hier im Forum, wenns denn mal gar nicht weiter geht und auch das gute alte Google nichts mehr hergibt.

In der Tat würde bei 50 Ms ein Zeilenumbruch stattfinden.
Da dieses Formular aber nur intern benutzt wird (deswegen ja auch die fest eingetragene Domain), glaube ich nicht, dass das passieren wird.

Die längste Email-Adresse in unserer Verwaltung passt jedenfalls ohne Umbruch in mein Feld rein ;)

Deine Ausführungen und auch die von radzmar kann ich sicher mal an anderer Stelle mal gebrauchen, oder jemand anderes aus dem Forum.

Vielen Dank an alle und schönes Wochenende.

Gruß
swesp

Antworten