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