Seite 1 von 4
Numerisches Feld Begrenzungslinien
Verfasst: 02.07.2010, 12:54
von Masterplan
Hallo allerseits!
Ich möchte in einem Formular ein numerisches Feld einfügen, das nur 6 Stellen enthalten darf, wenn ich nun die Zeichenanzahl auf 6 Stellen begrenze, bekomme ich immer vertikale Begrenzunglinien für jede Stelle. Läßt sich das irgendwo ausblenden? Durch Googeln bin ich auch nicht weiter gekommen.
Kann mir wer helfen, oder hat wer einen alternativen Vorschlag wie ich ein numerisches Feld ohne diese Begrenzungslinie bekomme?
Numerisches Feld Begrenzungslinien
Verfasst: 03.07.2010, 20:36
von nele_sonntag
Hallo Masterplan,
es gibt mehrere Möglichkeiten.
1. Du nimmst ein Textfeld, statt Numerischem. Hier kannst Du nicht nur, die von Dir beschriebene Variante wählen (blaue Umrandung) sondern auch noch die rote.
2. Du überprüfst per Script im EXIT-Ereignis des numerischen Feldes, wie viel eingeben wurde und setzt das Feld zurück und gibst dem Benutzer eine Fehlermeldung aus.
3. Wenn Du nur die Eingabe von Zahlen erlauben willst, gib es ein wunderbares Skript von Walde. Zu finden unter Mustertutorials.
http://www.acronaut.de/forum44/1395.html
Du brauchst dann nur in die eckigen Klammern alles schreiben, was verboten ist, bspw. A-Za-z
Hoffe, das hilft Dir weiter.
LG Mandy
Code: Alles auswählen
//wenn der Wert GRÖSSER 5 ist, mache bitte..
if(Pfad_zumFeld.Name_desFeldes.rawValue.length > 5){
//Hinweis an Benutzer ausgeben
xfa.host.messageBox("Bitte überprüfen Sie Ihre Eingabe.nSie haben MEHR als 5 Stellen eingegeben. Danke." , "Hinweis" , 1, 0);
//resete das Feld
Pfad_zumFeld.Name_desFeldes.rawValue = "";
}
//wenn der Wert KLEINER 5 ist, mache bitte..
if(Pfad_zumFeld.Name_desFeldes.rawValue.length < 5){
//Hinweis an Benutzer ausgeben
xfa.host.messageBox("Bitte überprüfen Sie Ihre Eingabe.nSie haben WENIGER als 5 Stellen eingegeben. Danke." , "Hinweis" , 1, 0);
//resete das Feld
Pfad_zumFeld.Name_desFeldes.rawValue = "";
}
Numerisches Feld Begrenzungslinien
Verfasst: 05.07.2010, 09:24
von Masterplan
Hallo,
Danke für deine rasche Antwort, das hilft mir sehr weiter.
Eine Anmerkung habe ich jedoch, das Script zur Begrenzung der maximalen Eingabe funktioniert bei mir nur bei Textfeldern nicht bei Numerischen Feldern, was mache ich falsch?
Numerisches Feld Begrenzungslinien
Verfasst: 05.07.2010, 14:26
von nele_sonntag
Hallo Masterplan,
kann ich so adhoc nicht sagen, PDF hochladen wäre sinnvoll.
LG Mandy
Numerisches Feld Begrenzungslinien
Verfasst: 05.07.2010, 15:57
von Masterplan
Hallo,
Ich habe als Anlage ein Test-pdf mitgeschickt, mit einem numerischen und einem Textfeld, beim Textfeld geht die Begrenzung auf 5 Zeichen beim numerischen nicht.
Numerisches Feld Begrenzungslinien
Verfasst: 06.07.2010, 10:45
von nele_sonntag
Hallo Masterplan,
habe eben noch mal geschaut und auch nix gefunden. In den Beispielen für Javascript steht, dass Javascript alles als String nimmt und man es parsen müsste, bspw. den Wert einfach mit 1 multipliziert, damit es als Zahl erkannt wird, aber das klappt nicht.
Ich löse es für mich immer so, dass ich das Script von Walde nehme, nur Eingabe von Zahlen erlaube in einem Texttfeld, dieses wie gehabt auslese und alles ist paletti.
Sorry, vielleicht hat noch Walde selbst oder jemand anderes eine Idee.
Liebe Grüße
Mandy
Numerisches Feld Begrenzungslinien
Verfasst: 06.07.2010, 14:29
von Masterplan
Hallo Mandy,
Ich habe das ganze jetzt mit dem Skript von Walde gelöst, also ein Textfeld beschränkt auf die Eingabe von Zahlen, vielen Dank für deinen Support!
Numerisches Feld Begrenzungslinien
Verfasst: 06.07.2010, 14:47
von nele_sonntag
Gerne.
Hoffe aber trotzdem noch auf Antwort von den Experten, würde mich nämlich auch interessieren.
LG Mandy
Numerisches Feld Begrenzungslinien
Verfasst: 06.07.2010, 19:13
von walde
Hallo Zusammen,
Es gibt mehrere Möglichkeiten die Anzahl an Zeichen in einem Feld zu begrenzen. Wenn es um Zahlen geht so ist ein Dezimalfeld das leichtere. Hier kann man nämlich ohne JavaScript die Anzahl an Zeichen vor dem Komma und danach begrenzen.
Man kann die Anzahl an Zeichen in einem Feld auch per JavaScript begrenzen. Hierbei muss beachtet werden, dass nummerische Werte, die aus Textfeldern ausgelesen werden in eine Nummer umgewandelt werden. Dies geht mit dem JavaScript Object "Number" z.B. "Number(Textfeld1.rawValue)".
Anbei eine Beispieldatei, mit verschiedenen Beispielen auch auf JS Basis.
In der Beispieldatei wird das Nummerische Feld auf die Länge der Eingabe, das Textfeld auf die Zahlen in der Eingabe und auf die Länge der Eingabe überprüft.
Gruß,
Walde
Numerisches Feld Begrenzungslinien
Verfasst: 07.07.2010, 11:36
von nele_sonntag
[fontsize=1]Hallo Walde,
zunächst, wie immer, vielen Dank.
Hätte aber für "mein Weiterkommen" noch ein paar Fragen.
1. Warum ist es besser xfa.event.newText zu nehmen? Ich sehe, das bei Ihnen immer. Ich selbst benutze ja immer den rawValue des jeweiligen Objektes? Hat dies mit der "Echtzeitüberprüfung" des Feldes zu tun?
2. Dezimalfeld ist natürlich super. Da ich mir jetzt erst den neuen LCD geholt habe, hatte ich diese Möglichkeit gar nicht bedacht/noch nicht gekannt.
3. Warum funktioniert "Pfad_zumFeld.Name_desFeldes.rawValue.length > 5" bei einem Textfeld, aber nicht bei einem numerischen? Hätte man den Wert des numerischen zunächst in einen String umwandeln müssen?
4. Wenn es Ihnen möglich wäre, kurz die Syntax von match() zu erklären, wäre das toll. Vielleicht auch in einer eigenen Diskussion?
Folgendes habe ich selbst gefunden, damit Sie nicht den Eindruck bekommen, dass ich mich komplett "bedienen" lassen möchte
Funktion:
Die Methode match() sucht nach Übereinstimmung zwischen einem regulärem Ausdruck und einem String und gibt die Übereinstimmung zurück.
Syntax: string.match(regexp)
[/fontsize]
- [fontsize=1]Schreibweise für den reg. Ausdruck (siehe Bild, weitere siehe Link [/fontsize][fontsize=1]http://www.w3schools.com/jsref/jsref_obj_regexp.asp[/fontsize][fontsize=1]) [/fontsize]
- [fontsize=1]Aber so ganz verstehe ich die Syntax für den reg.Ausdruck nicht. [/fontsize]
- [fontsize=1]var txt=/pattern/modifiers = Das Muster, welches angewendet werden soll, muss innerhalb der // stehen, bspw. /[A-Z]/ ok. [/fontsize]
- [fontsize=1]In Ihrem Beispiel bedeutet dann die Schreibweise match(/\D/) = finde einen nicht Ziffer-Charakter = bedeutet, es sind nur Zahlen erlaubt? [/fontsize]
- [fontsize=1]Bedeutet dann, match(/\d/) = finde einen Ziffer-Charakter = bedeutet, es sind nur Buchstaben erlaubt?[/fontsize]
[fontsize=1]Wären dies dann nach meiner Interpretation korrekte Beispiele?
[/fontsize]
Code: Alles auswählen
//nur Buchstaben erlaubt??
if(xfa.event.newText.match(/\d/){
xfa.event.change = "";}
//ebenso nur Buchstaben erlaubt??
if(xfa.event.newText.match(/[0-9]/){
xfa.event.change = "";}
//nur Eingabe von DE und Zahlen erlaubt und ohne Eingabe von Leerstellen??
if(xfa.event.newText.match(/[0-9^DE\s]/){
xfa.event.change = "";}
Liebe Grüße und danke für Ihre Hilfe,
Mandy