Seite 1 von 2
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 11.12.2013, 11:30
von lpix
Hallo zusammen,
ich stehe als Javascript-Anfänger momentan vor einem Problem, dass ich nicht lösen kann.
Ich möchte bei einer Textfeldeingabe nur hexadezimale Zeichen zulasssen und tue das bei CHANGE mit
Code: Alles auswählen
if(xfa.event.newText.match(/[^0-9ABCDEFabcdef]/))
{
xfa.event.change = "";
}
Darüber hinaus sollten Kleinbuchstaben sofort in Grossbuchstaben umgewandelt werden (wegen eines nachgelagerten switch/case). Dafür versuchte ich nun den Befehl
nachgelagert zu verwenden. Geht aber so leider nicht. Auch mit
komme ich leider nicht weiter.
Ich vermute mal, dass die Umwandlung auf Grossbuchstaben gleich mit der ersten Prüfung verknüpft erden muß - und genau da stoße ich an meine Grenzen. Hat jemand einen Tipp?
Vielen Dank!
Sebastian
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 11.12.2013, 12:37
von armine
versuche mal
...TextField1::change - (JavaScript, client)
xfa.event.change = xfa.event.change.replace(/[^A-F0-9]/i,"").toUpperCase()
vg armine
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 11.12.2013, 13:05
von lpix
Vielen Dank Armine für die schnelle Hilfe. Optisch funktioniert die Eingabe schon mal bestens!
Interessanterweise wird aber mein nachfolgender switch/case Befehl (der eine 3-Stellige HEX-Zeichenkette mit Großbuchstaben erwartet) nur dann unmittelbar nach der Eingabe des dritten Zeichens ausgeführt, wenn der User Buchstaben bereits groß geschrieben hatte (z.B "2BB").
Wenn der User allerdings "2bb" eintippte, passiert erst einmal gar nichts im switch/case; erst nach der Eingabe eines 4. Zeichens (welches aufgrund der Längenbegrenzung des Feldes nicht angenommen wird) wird der switch/case korrekt ausgeführt.
Kannst Du Dir das erklären?
VG
Sebastian
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 11.12.2013, 15:33
von armine
Hallo Sebastian,
das funktioniert nicht nur optisch. Wenn du im "change" noch
xfa.event.newText = xfa.event.newText.toUpperCase() ;
dranhängst, muss das auch wirken. Ersatzweise kannst du auch im "exit" mit
this.rawValue = this.rawValue.toUpperCase() ; anfangen.
Wo steckt den dein "switch/case" und welchen Wert übergibst du?
vg armine
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 11.12.2013, 16:05
von lpix
Ja, mit dem drangehängten xfa.event.newText funktioniert es nun auch! Vorher tat es das erst beim "4. Zeichen".
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 12.12.2013, 12:04
von lpix
Armine, vielen Dank für die schnelle Hilfe!
VG
Sebastian
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 08.02.2014, 10:59
von landei2003
Hallo,
ich möchte nur Zahlen 0-9 und / zulassen.
jmd ne Idee?
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 08.02.2014, 12:02
von armine
Bei
feld::change - (JavaScript, client)
if (!xfa.event.newText.match(/^\d+$/)) xfa.event.change = ""
bleiben nur Zahlen übrig.
vg armine
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 08.02.2014, 15:26
von landei2003
Hallo Armine,
mir geht's um den slash(/), der soll erlaubt sein.
Zeichenbeschränkung und Umwandlung Grossschreibung
Verfasst: 08.02.2014, 16:56
von armine
Ach ja, wer lesen kann ...
Mit
if (!xfa.event.newText.match(/^\d+\/?\d*$/)) xfa.event.change = ""
wird ein Slash nach (mindestens) einer Ziffer erlaubt. Wenn du etwas anderes brauchst, bitte mit genauen Anforderungen melden.
vg armine