//################################ //## //## check_form - Skript v1.0 //## //## Copyright, (c) Web-Design Reischmann 2001 //## //## Author : F.Georg //## //################################ var COUNT = 0; var LASTERROR = ""; //## vordefinierte gültige Zeichen var ALLE = ""; var TEL = "1234567890 -/"; var BUCHSTABEN = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZäöüÄÖÜß"; var EMAIL = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_.@"; var ZAHL = "1234567890"; field_names = new Array (); normal_names = new Array (); valid_chars = new Array (); min_lengths = new Array (); max_lengths = new Array (); //############################################################## function register (_fieldname,_normalname,_validchars,_min,_max) //############################################################## { field_names[COUNT] = _fieldname; normal_names[COUNT] = _normalname; _validchars == null ? valid_chars[COUNT] = "" : valid_chars[COUNT] = _validchars; _min == null ? min_lengths[COUNT] = 0 : min_lengths[COUNT] = _min; _max == null ? max_lengths[COUNT] = 0 : max_lengths[COUNT] = _max; COUNT++; } //############################## function check_email (s) //############################## { // Checking existense of "@" and ".". The length of the input must be at least 7 characters. The "." must neither be preceding the "@" nor follow it. if((s.indexOf("@") == -1) || (s.charAt(0) == ".") || (s.charAt(0) == "@") || (s.length < 7) || (s.indexOf(".") == -1) || (s.charAt(s.indexOf("@")+1) == ".") || (s.charAt(s.indexOf("@")-1) == ".")) { return false; } else { //## check, auf gültige Zeichen for (var i = 0;i < s.length;i++) { if ((EMAIL.indexOf (s.charAt (i)) < 0)) return false; } return true; } } //############################## function check (s,valid,min,max) //############################## { //## hier Weiche für spezielle Checks if (valid == EMAIL) { if (check_email (s)) return true else { LASTERROR = "ungültige E-Mail Adresse"; return false;} } for (var i = 0;i < s.length;i++) { //## bei valid == "" alles erlaubt if ((valid.indexOf (s.charAt (i)) < 0) && (valid != "")) { LASTERROR = "ungültige(s) Zeichen eingegeben"; return false; } } if (min > 0) { if (s.length < min) { LASTERROR = "bitte mindestens "+min+" Zeichen eingeben"; return false; } } if (max > 0) { if (s.length > max) { LASTERROR = "bitte höchstens "+max+" Zeichen eingeben"; return false; } } return true; } //## //## Überprüft, ob alle Felder ausgefüllt wurden, und gibt ggf. eine entsprechende Meldung aus //## //## //################################################################### function check_form (theform) //################################################################### { var fieldname = ""; for (var i in field_names) { var sname = field_names[i]; var sobj = theform.elements[field_names[i]]; if (sobj == null) alert ("CheckForm-Fehler:\nDas Feld '"+field_names[i]+"' existiert nicht im formular.\nBitte 'register(...)' Anweisungen prüfen"); var svalue = sobj.value; //### Prüfung, und Fehlermeldung erzeugen if (((sobj.type == "text") && (svalue=="")) || ((sobj.type == "text") && (!check(svalue,valid_chars[i],min_lengths[i],max_lengths[i]))) || ((sobj.type == "checkbox") && (!sobj.checked)) || ((sobj.type == "select-one") && (sobj.selectedIndex == 0))) { fieldname += " - " + normal_names[i]; if (LASTERROR != "") fieldname +=" ( "+LASTERROR+" )"; LASTERROR = ""; fieldname += "\n"; } } if (fieldname != "") { alert ("Bitte füllen Sie folgende Felder vollständig aus : \n\n"+fieldname); return false; } return true; }