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

Code: Alles auswählen

xfa.event.change.toUpperCase();
nachgelagert zu verwenden. Geht aber so leider nicht. Auch mit

Code: Alles auswählen

this.rawValue = this.rawValue.toUpperCase();
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