Formular testen:mehrere optionsfelder mit Eingabef

Hallo an alle;
Habe wieder eine neue Herausforderung. Das unten Formular möchte ich mit javascript auf Fehleingaben testen. Ihr sieht habe schon angefangen aber leider weisst nicht mehr wie ich es weiter machen soll.
Es geht um folgende Punkte:
Anschlussart: wenn Kunde ISDN wählt, muss er alle 3 Zeile für Vorwahl und Rufnummer ausfüllen, sonst Fehlermeldung. Bei Analog das Gleiche, nur einer Zeile, sonst Fehlermeldung.

Rechnungart: wenn Kunde eins von beiden Optionsschalter mit ja auswählt, muss eMail-feld ausgefüllt werden, sonst Fehlermeldung.

Zahlungsart: wenn Kunde eins von beiden Zahlungsart-Optionsfelder auswählt, müssen die entsprechende Felder ausgefüllt werden, sonst Fehlermeldung.

Ich wurde mich sehr freuen wenn jemand mir helfen konnte. Ich danke in voraus…
Gracias

<!–
function TesteZeichen (Teststring, Buchstaben)
{
var AlleZeichenOk = true;
for (var i=0; i<Teststring.length ; i++)
if (Buchstaben.indexOf(Teststring.charAt(i)) == -1)
AlleZeichenOk = false;
return AlleZeichenOk;
}

function TesteObEmail (Teststring)
{
OK = true;
if ((Teststring.indexOf(’@’) == -1)
|| (Teststring.indexOf(’@’) == 0)
|| (Teststring.indexOf(’@’) == (Teststring.length-1))
|| (Teststring.indexOf(’.’, Teststring.indexOf(’@’)) == -1)) OK = false;
return OK;
}

function CheckForm(ppformular)
{
var check = true;
<!-- matrix_id -->
if (ppformular.Matrix_Id.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihre Matrix Id an!‘);
}
else if (!TesteZeichen(ppformular.Matrix_Id.value, „1234567890“))
{
check = false;
alert (‚Bitte geben Sie nur Zahlen ein!‘);
}
<!-- Beburtsdatum -->
else if (ppformular.Geburtsdatum.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihr Geburtsdatum an!‘);
}
else if (!TesteZeichen(ppformular.Geburtsdatum.value, „1234567890“))
{
check = false;
alert (‚Bitte geben Sie Ihr Geburtsdatum (nur Zahlen) ein!‘);
}
else if (ppformular.Geburtsdatum.value.length != 8)
{
check = false;
alert (‚Bitte geben Sie Ihr Geburtsdatum (8 Zahlen) ein!‘);
}
<!-- Name -->
else if (ppformular.Name.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihren Namen an!‘);
}
<!-- Vorname -->
else if (ppformular.Vorname.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihren Vornamen an!‘);
}
<!-- Adresse -->
else if (ppformular.Adresse.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihre Adresse an!‘);
}
<!-- PLZ -->
else if (ppformular.PLZ.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihre Postleitzahl an!‘);
}
else if (!TesteZeichen(ppformular.PLZ.value, „1234567890“))
{
check = false;
alert (‚Bitte geben Sie nur Zahlen ein!‘);
}
else if (ppformular.PLZ.value.length != 5)
{
check = false;
alert (‚Fuenf ist Trumpf!‘);
}
<!-- Ort -->
else if (ppformular.Ort.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihren Wohnort an!‘);
}
<!-- Email -->
else if (ppformular.Mail.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihre E-Mail-Adresse an!‘);
}
else if (!TesteObEmail(ppformular.Mail.value))
{
check = false;
alert (‚Bitte geben Sie Ihre E-Mail-Adresse an!‘);
}
<!-- Telefon -->
else if (ppformular.Telefon.value == ‚‘)
{
check = false;
alert (‚Bitte geben Sie Ihre Telefonnummer an!‘);
}
else if (!TesteZeichen(ppformular.Telefon.value, „1234567890-/“))
{
check = false;
alert (‚Bitte geben Sie eine gueltige Telefonnummer ein!‘);
}
if (check)
{
if (confirm(‚Alle Eingaben sind O.K., wollen Sie sie jetzt abschicken?‘)) ppformular.submit();
}
}
//–>

Matrix-ID:

Sponsor-ID:

Auftraggeber/Vertragspartner:

Herr

Frau
Geburtsdatum:

Name:

Vorname:

Strasse:

PLZ/Ort:

E-Mail:

 
 

Anschlussart
Vorwahl:

Rufnummer:

Anschlussart:

Analog
ISDN

Rechnungsart

Nein

Ja, vollständig per Post

Ja, gekürzt um die letzten drei Ziffern per Post

Ja, vollständig per E-mail

Ja, gekürzt um die letzten drei Ziffern per E-mail

Zahlungsweise:

per Bankeinzug
BLZ:

Konto-Nr.:

Kreditinstitut:

Kontoinhaber:

per Kreditkarte
Karten-Nr.:

gültig bis:

Kreditkartengesellschaft:

Kreditkarteninhaber:

 

Hi Freddy.

Anschlussart: wenn Kunde ISDN wählt, muss er alle 3 Zeile für
Vorwahl und Rufnummer ausfüllen, sonst Fehlermeldung. Bei
Analog das Gleiche, nur einer Zeile, sonst Fehlermeldung.

Habe eine passende Funktion geschrieben, mann muss Sie in die CheckForm
Funktion einbauen und zwar vor der check Variablen Überprüfung am Ende. Die Methode benutzt deine TesteZeichen Methode und gibt true oder false zurück, Also einfach:
check=anschl();
in die CheckForm() Methode einbauen.

Hier die Funktion, sie ist auskommentiert, damit man sie besser verstehen kann.
******
_function anschl()
{
//welcher radiobutton ist ausgewählt
if(document.ppformular.Anschlussart[0].checked)
{ //analog
runden=1;}
else
{ //isdn
runden=3;}

//diese Schleife wird bei isdn 3mal bei analog 1mal durchlaufen
for(i=1;i
********************

Rechnungart: wenn Kunde eins von beiden Optionsschalter mit ja
auswählt, muss eMail-feld ausgefüllt werden, sonst
Fehlermeldung.

Du überprüfst in deinem Skript sowieso immer die Email auf Richtigkeit,
warum sollte man also nochmal überprüfen?

Zahlungsart: wenn Kunde eins von beiden
Zahlungsart-Optionsfelder auswählt, müssen die entsprechende
Felder ausgefüllt werden, sonst Fehlermeldung.

Auch hier habe ich eine Methode geschrieben. Sie gibt auch false oder true wieder und muss vor der letzen überprüfung der variable chek in deiner CheckForm-Funktion ausgeführt werden.
check=zahlung();

Hier die Methode
***********************
function zahlung()
{
if(document.ppformular.Zahlungsweise[0].checked)
{
//Bankeinzug
blz=document.ppformular.BLZ.value;
blz=blz.replace(/ /g,"");
//Test ob blz numerisch und länger als 4 zeichen
if(!TesteZeichen(blz,„0123456789“) || blz.length
*****************

Habe die Sache in deinem Quelltext getestet und es funktioniert, trotzdem keine garantie auf fehler.
Du musst noch die überprüfung auf Mindestlängen anpassen (z.B. wie lang soll eine vorwahl mindestens sein (zur zeit bei 3 ziffern))

Außerdem empfehle ich dir das Formular etwas zu entzerren und kundenfreundlicher zu gestalten.
Und mir ist aufgefallen das bei manchen eingebfeldern die maxlength zu klein gewählt ist. Weterhin viel Erfolg.
MfG DP_