16.4 Formulare überprüfen
Unvollständige Formularangaben sind ärgerlich. Ohne Gegenmaßnahmen kommt es häufig vor, dass etwa Kundenanfragen ohne E-Mail, Telefonnummer oder andere wichtige Angaben abgeschickt werden. Damit dies vermieden wird, sollten Formulare immer auf die vollständige Eingabe der wichtigsten Daten überprüft werden.
In Dreamweaver 8 haben Sie die Möglichkeit, dieses über eine Aktion zu erledigen, die ganz einfach einzubauen ist. Markieren Sie z. B. den Senden-Button, und wählen Sie dann im Bedienfeld Verhalten den Menüpunkt Formular überprüfen aus.
In der nun erscheinenden Dialogbox (siehe Abbildung 16.9) können Sie im Menü Benannte Felder ein Formular auswählen und die Überprüfungsoptionen festlegen. Möchten Sie den ausgewählten Wert als Erforderlich festlegen, können Sie dies mit Aktivierung des Kontrollkästchens erzwingen. Unter Akzeptieren legen Sie zusätzlich fest, welches Format die Eingabe haben soll.
Abbildung 16.9 Überprüfung von Formularen
Eine E-Mail-Adresse wird jedoch nur auf Vorhandensein und nicht etwa auf die richtige Schreibweise überprüft. In der Praxis reicht dies aber in den meisten Fällen aus.
Fehlermeldungen auf Clientseite | Sind die Angaben im Formular unvollständig oder falsch, erscheinen beim Benutzer Fehlermeldungen, zunächst leider in Englisch.
Abbildung 16.10 Fehlermeldung bei fehlender Eingabe
Um dies zu verändern, müssen Sie das zugehörige JavaScript editieren. Wechseln Sie in den Quelltext, und suchen Sie das Skript function MM_validateForm(). Ändern Sie das Skript wie in Listing 16.1 ab, um aus den englischen deutsche Fehlermeldungen zu generieren:
Listing 16.1 Generieren von deutschen Fehlermeldungen in Dreamweaver 8 bei der Formularüberprüfung
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('isE-Mail???')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' Sie muessen eine E-Mail-Adresse??? eingeben.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' Sie muessen eine zahl eingeben.\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+' Sie muessen eine Zahl zwischen '+min+' und '+max+' eingeben.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' wird benoetigt.\n'; } } if (errors) alert('Die folgenden Angaben sind falsch oder fehlen:\n'+errors); document.MM_returnValue = (errors == ''); }