Zeichenbeschränkung und Umwandlung Grossschreibung

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
lpix
Beiträge: 23
Registriert: 29.01.2013, 08:10

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von lpix » 11.12.2013, 11:30

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von armine » 11.12.2013, 12:37

versuche mal

...TextField1::change - (JavaScript, client)

xfa.event.change = xfa.event.change.replace(/[^A-F0-9]/i,"").toUpperCase()

vg armine

lpix
Beiträge: 23
Registriert: 29.01.2013, 08:10

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von lpix » 11.12.2013, 13:05

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von armine » 11.12.2013, 15:33

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

lpix
Beiträge: 23
Registriert: 29.01.2013, 08:10

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von lpix » 11.12.2013, 16:05

Ja, mit dem drangehängten xfa.event.newText funktioniert es nun auch! Vorher tat es das erst beim "4. Zeichen".
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

lpix
Beiträge: 23
Registriert: 29.01.2013, 08:10

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von lpix » 12.12.2013, 12:04

Armine, vielen Dank für die schnelle Hilfe! :)

VG
Sebastian

landei2003
Beiträge: 114
Registriert: 25.02.2011, 19:08

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von landei2003 » 08.02.2014, 10:59

Hallo,

ich möchte nur Zahlen 0-9 und / zulassen.
jmd ne Idee?

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von armine » 08.02.2014, 12:02

Bei
feld::change - (JavaScript, client)
if (!xfa.event.newText.match(/^\d+$/)) xfa.event.change = ""
bleiben nur Zahlen übrig.

vg armine

landei2003
Beiträge: 114
Registriert: 25.02.2011, 19:08

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von landei2003 » 08.02.2014, 15:26

Hallo Armine,

mir geht's um den slash(/), der soll erlaubt sein.


armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Zeichenbeschränkung und Umwandlung Grossschreibung

Beitrag von armine » 08.02.2014, 16:56

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

Antworten