[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms
Themen
Beiträge
Moderatoren
Letzter Beitrag

Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

wiseman
Beiträge gesamt: 131

27. Jan 2022, 11:35
Beitrag # 1 von 6
Bewertung:
(23563 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag zusammen,

eine ganz skurile Sache. Im Thema steht fast schon alles drin.
Ich habe ein Acrobatformular erstellt mit ca. 20 Feldern.
In ein Feld soll die IBAN des Kunden eingetragen werden, es müssen hier immer 20 Ziffern sein, keine mehr und keine weniger.
Das Feld ist im Reiter Format mit der Formatkategorie Zahlen belegt. Keine Dezimalstellen.

Wenn man nun allerdings 20 Ziffern eingibt und zum nächsten Feld springt, verändern sich die letzten 3 Stellen. Wenn man 17 Ziffern eingibt nur die letzte Ziffer …

Das Formular wurde mit InDesign erstellt und dann die PDF mit Feldern belegt, es ist aber genauso, wenn ich in Acrobat ein Formular komplett neu erstelle.
Das Ganze ist also reproduzierbar, am Mac und unter Windows 10

Weißt hierzu jemand Rat?

Danke und viele Grüße, Andy
X

Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

mk-will
Beiträge gesamt: 1255

27. Jan 2022, 13:43
Beitrag # 2 von 6
Beitrag ID: #582396
Bewertung:
(23532 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Andy,

Rat weiß ich keinen.

Aber ich kann Deine Beobachtung bestätigen (neuste Acrobat Pro DC 2021.011.20039), offensichtlich ein Bug.

Lustig ist auch, daß, wenn ich das Feld zwecks Eingabe wieder aktiviere, mir die zuvor eingetippte, richtige Zahl wieder angezeigt wird.
Und beim Verlassen des Feldes wieder die letzten Stellen verändert werden.

Gruß
Stephan


als Antwort auf: [#582390]

Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

wiseman
Beiträge gesamt: 131

27. Jan 2022, 14:53
Beitrag # 3 von 6
Beitrag ID: #582400
Bewertung:
(23498 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

gut, dass das nicht an meiner kleinen Welt liegt.

Ich hatte es auch mit Version 10.1.16 versucht, etwas älteres habe ich nicht am Netz.
Was mir wundert ist, dass das noch nicht wo aufgeschlagen ist, eine IBAN ist nun ja keine Sache aus einer Parallelwelt. Ich bin gespannt.

Viele Grüße
Andy


als Antwort auf: [#582396]

Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

Thomas Richard
Beiträge gesamt: 19337

28. Jan 2022, 11:45
Beitrag # 4 von 6
Beitrag ID: #582436
Bewertung:
(23403 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich kanns etwas modifiziert bestätigen: Wenn ich mit einer 0 beginne, wird nur die 20ste Stelle abgeschnitten, beginnt die Ziffernfolge mit einer anderen Ziffer erfolgt eine Ersetzung der 3 Stellen

Scheinbar hat da irgendwer eine festverdrahtete Prüfsummenberechnug liegen lassen Wink

Ich würde IBANs aber eh immer auf Authentizität prüfen, und das funktioniert in meinen Formularen mit entsprechenden Feldern anscheinend noch unverändert (einfache Version ohne Prüfnummerziffern und internationale IBAN-Versionen, die gibts aber auch im Netz):

Format: benutzerdef. Formatierungsskript
Code
var strIBAN = event.value; 
var reIBAN = /^(DE\d{2})(\d{4})(\d{4})(\d{4})(\d{4})(\d{2})$/;
var reIBANFormat = /^(DE\d{2}) (\d{4}) (\d{4}) (\d{4}) (\d{4}) (\d{2})$/;
if(reIBANFormat.test(strIBAN) == false) {
if(reIBAN.test(strIBAN) == true) {
var formatIBAN = RegExp.$1;
formatIBAN = formatIBAN + " " + RegExp.$2 + " " + RegExp.$3;
formatIBAN = formatIBAN + " " + RegExp.$4 + " " + RegExp.$5 + " " + RegExp.$6;
event.value = formatIBAN; }
else
{
var message = "Die Länge der IBAN scheint nicht zu stimmen."; app.alert(message);
} }



als Antwort auf: [#582400]

Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

wiseman
Beiträge gesamt: 131

30. Jan 2022, 16:24
Beitrag # 5 von 6
Beitrag ID: #582459
Bewertung:
(23289 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

großer Sport, danke!
Dann lasse ich das "vorgedruckte" "DE" weg, das ja eh zur IBAN gehört.
Den Text der Meldung habe ich geändert in "Bitte überprüfen Sie die Richtigkeit Ihrer Eingabe",
Unsinn mit der richtigen Länge gibt sonst keine Meldung.
Was muss ich denn für AT- bzw. CH-IBANs ändern? Im Web habe ich noch nichts gefunden und so alleine bekomme ich das leider nicht hin.

Viele Grüße
Andraes


als Antwort auf: [#582436]

Mehr als 16 Zahlen führt zu einer Änderung der Eingabe in "Zahlen"-Formularfeld beim Wechsel in das nächste Feld.

Thomas Richard
Beiträge gesamt: 19337

7. Feb 2022, 20:42
Beitrag # 6 von 6
Beitrag ID: #582549
Bewertung:
(22953 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich hab mal was für deutsche(DE+20Ziffern), österreichische(AT+18Ziffern) und schweizer(CH+19Ziffern) IBAN-Längen gebastelt.


Dem Eingabefeld, welchem man das folgende Javascript als Benutzerdefiniertes Formatierungsscript vorwirft, sollte egal sein ob die IBAN mit oder ohne Leerschläge eingegeben wurde:

DE12123412341234123412

oder

DE12 1234 1234 1234 1234 12

selbiges für AT und CH:


Code
var strIBAN = event.value; 

var reIBANDE = /^(DE\d{2})(\d{4})(\d{4})(\d{4})(\d{4})(\d{2})$/;
var reIBANAT = /^(AT\d{2})(\d{4})(\d{4})(\d{4})(\d{4})$/;
var reIBANCH = /^(CH\d{2})(\d{4})(\d{4})(\d{4})(\d{4})(\d{1})$/;

var reIBANFormatDE = /^(DE\d{2}) (\d{4}) (\d{4}) (\d{4}) (\d{4}) (\d{2})$/;
var reIBANFormatAT = /^(AT\d{2}) (\d{4}) (\d{4}) (\d{4}) (\d{4})$/;
var reIBANFormatCH = /^(CH\d{2}) (\d{4}) (\d{4}) (\d{4}) (\d{4}) (\d{1})$/;

if(strIBAN.substring(0,2) == "DE"){
if(reIBANFormatDE.test(strIBAN) == false) {
if(reIBANDE.test(strIBAN) == true) {
var formatIBAN = RegExp.$1;
formatIBAN = formatIBAN + " " + RegExp.$2 + " " + RegExp.$3;
formatIBAN = formatIBAN + " " + RegExp.$4 + " " + RegExp.$5 + " " + RegExp.$6;
event.value = formatIBAN; }
else
{
var message = "Die Länge der DE-IBAN ist nicht 22 Zeichen!"; app.alert(message);
} } }
else {
if(strIBAN.substring(0,2) == "AT") {
if(reIBANFormatAT.test(strIBAN) == false) {
if(reIBANAT.test(strIBAN) == true) {
var formatIBAN = RegExp.$1;
formatIBAN = formatIBAN + " " + RegExp.$2 + " " + RegExp.$3;
formatIBAN = formatIBAN + " " + RegExp.$4 + " " + RegExp.$5;
event.value = formatIBAN; }
else
{
var message = "Die Länge der AT-IBAN ist nicht 20 Zeichen!"; app.alert(message);
} } }
else{
if(strIBAN.substring(0,2) == "CH") {
if(reIBANFormatCH.test(strIBAN) == false) {
if(reIBANCH.test(strIBAN) == true) {
var formatIBAN = RegExp.$1;
formatIBAN = formatIBAN + " " + RegExp.$2 + " " + RegExp.$3;
formatIBAN = formatIBAN + " " + RegExp.$4 + " " + RegExp.$5 + " " + RegExp.$6;
event.value = formatIBAN; }
else
{
var message = "Die Länge der CH-IBAN ist nicht 21 Zeichen!"; app.alert(message);
} } }
else
{
var message = "Weder eine deutsche, noch eine österreichische, noch eine schweizerische IBAN!"; app.alert(message);
} } }




Das alles ist aber wirklich nur eine Längenprüfung abhängig von den ersten beiden Buchstaben. Stimmen die schon nicht, kommt eine allgemeine Fehlermeldung. Stimmt die Gesamtlänge zur Länderkennung, wird das Feld optisch mit Trennern dargestellt.


Die nächsteStufe wäre die Prüfung, ob es eine grundsätzlich valide IBAN ist, also die Stellen 3 und 4 mit der Prüfziffer zum Rest passen.
Dafür gibts z.B. https://github.com/arhs/iban.js/
oder
https://www.npmjs.com/package/ibantools

Habe ich beide aber noch nicht in ein PDF implementiert bekommen.

Und auch solche Brocken prüfen zwar ob die IBAN aus dem korrekten Präfix, der dazu erlaubten Anzahl und Zeichenauswahl* und die Prüfziffer der lokalen Berechnugsbestimmung entspricht, scheitern dann aber doch daran, dass das alles noch keine tatsächlich valide IBAN Ist:

"Deutschland (DE) hat eine komplexe Struktur mit 143 Algorithmen und benutzerdefinierten Gewichtungen: MOD10, MOD11, MOD7 etc.“[Quelle: https://de.iban.com/iban-checker ]
um eine Kombination aus BLZ und Kontonummer zu einer gültigen BBAN zusammengesetzt zu bekommen.

* Das sind die 7 Varianten an erlaubter und möglicher Zeichenauswahl der BBAN:
Code
case "A": format = "0-9A-Za-z"; break; 
case "B": format = "0-9A-Z"; break;
case "C": format = "A-Za-z"; break;
case "F": format = "0-9"; break;
case "L": format = "a-z"; break;
case "U": format = "A-Z"; break;
case "W": format = "0-9a-z"; break;



als Antwort auf: [#582459]
X