Formulare überprüfen per JavaScript (mit dem DRW)

Transcription

Formulare überprüfen per JavaScript (mit dem DRW)
Formulare überprüfen per JavaScript (mit dem DRW)
Unvollständige Formularangaben sind ärgerlich. Es kommt häufig vor, dass Kundenanfragen ohne
wichtige Angaben (e-Mail-Adresse, Adresse, Telefonnummer, usf.) abgeschickt werden.
Damit dies vermieden wird, sollten Formulare immer auf vollständige Eingabe der wichtigsten
Daten überprüft werden.
Formulare können clientseitig mit Hilfe von JavaScript als auch serverseitig mit Scriptsprachen wie
PHP überprüft werden.
Mit dem DRW geht dies ganz einfach, indem Sie z.B. den Sende-Button markieren und dann im
Bedienfeld Verhalten das + anklicken (Verhalten hinzufügen) und dann den Menüpunkt
Formulare überprüfen auswählen.
bei Verhalten hinzufügen
fertiges Verhalten eingefügt
In der nun erscheinenden Dialogbox können Sie beim Punkt Benannte Felder die
Überprüfungsoptionen festlegen:
Leider können Sie mit dieser Möglichkeit nur Textfelder bzw. –bereiche überprüfen.
Ein Vorteil dieser Methode ist es, dass die Überprüfung beim Client durchgeführt wird (es entsteht
kein unnötiger Datenverkehr bzw. der Server wird damit nicht belastet).
Den jeweils ausgewählten Wert als Erforderlich festlegen können sie, indem Sie das
Kontrollkästchen aktivieren.
Unter Akzeptieren legen sie zusätzlich fest, welches Format die Eingabe haben soll.
Klicken Sie auf den Sende-Button, so erscheinen Fehlermeldungen zunächst leider in Englisch:
Formulare überprüfen per JavaScript
1/2
© Mag. Erwin Mayer
Um dies zu verändern, müssen Sie das zugehörige JavaScript editieren. Wechseln Sie in den
Quelltext, und suchen sie das Script
function MM_validateForm().
Ändern Sie das Script, um aus den englischen deutsche Fehlermeldungen zu generieren.
Ersetzen Sie z.B.
The following error(s) occured: durch
Der/Die folgende Fehler sind aufgetreten:
usf.
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail
address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+'
and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
überarbeitete Funktion
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' muss eine gültige E-Mail-Adresse
enthalten.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' muß eine Zahl enthalten.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' muß eine Zahl zwischen '+min+' und
'+max+' enthalten.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' ist notwendig.\n'; }
} if (errors) alert('Der/Die folgende(n) Fehler sind aufgetreten:\n'+errors);
document.MM_returnValue = (errors == '');
}
Die Feldnamen könnten durch Großschreibung noch verbessert werden, beachten sie jedoch die
Regeln, die für Variable in den entsprechenden Skriptsprachen (z.B. PHP) herrschen.
Formulare überprüfen per JavaScript
2/2
© Mag. Erwin Mayer