Moin,
mich deucht, du stehst JavaScript-technisch noch ziemlich im Wald, nicht wahr? Anbei eine kleine Komplettlösung mit viel Kommentar. Ich würde dir, empfehlen, zu verstehen, was da passiert, damit du dir den Kram anpassen kansst.
liebe Grüße, Uschi
Hier der Quälcode
<html>
<head>
<script language="JavaScript">
/*
* function doCheck()
* Diese Funktion wird mit onsubmit="return doCheck()" in deinem <form>-Tag aufgerufen.
* Sie benötigt zwei Hilfsfunktionen:
* checkExists(elt), um zu überprüfen, ob Userlein denn etwas in ein Textfeld eingetragen hat
* checkEmail(elt), um zu überprüfen, ob Userlein eine Mehladresse eingegeben hat und die auch gültig ist
*/
function doCheck() {
// Ueberpruefung des Namensfeldes mit Hilfe der Funktion checkExists()
var valName = checkExists(document.myForm.fullname);
// Wenn valName auf false steht
if(!valName) {
// Fehlermeldung rausblasen
alert("Bitte geben Sie Ihren Namen an.");
// Cursor ins Namensfeld setzen
document.myForm.fullname.focus();
// false zurückgeben, damit das Formular nicht abgeschickt wird
return false;
}
// Ueberpruefung des Telefonfeldes mit Hilfe der Funktion checkExists()
var valTelfax = checkExists(document.myForm.telfax);
// Ueberpruefung des E-Mailfeldes mit der Funktion checkEmail()
var valMail = checkEmail(document.myForm.email);
// wenn valTelfax UND valMail falsch sind, Fehlermeldung rausblasen
if(!valTelfax && !valMail) {
// Fehlermeldung rausblasen
alert("Geben Sie entweder Ihre Telefonnummer und eine gültige E-Mail-Adresse an.");
// Cursor ins Telefonfeld setzen
document.myForm.telfax.focus();
// false zurückgeben, damit das Formular nicht abgeschickt wird
return false;
}
// Wenn wir hier angekommen sind, können wir true zurückgeben, damit das Formular abgeschickt wird
return true;
}
/**
* Prüfen, ob ein Textfeld einen Eintrag enthält
* Parameter: elt, ein Element des Typs input type="text"
*/
function checkExists(elt) {
// Wenn das Feld leer ist, wird false zurückgegeben, wenn nicht true;
return (elt.value == "") ? false : true;
}
/**
* Prüft, ob eine Email-Adresse angegeben wurde und ob diese ein gültiges Format hat.
* Parameter: elt, ein Element des Typs input type="text"
* Hilfsfunktionen: checkExists(elt)
*/
function checkEmail(elt) {
// erstmal nachgucken, ob überhaupt was eingetragen wurde
var mailExists = checkExists(elt);
if(!mailExists) {
return false;
} else {
var email = elt.value;
/* ab hier stammt der Code aus http://selfaktuell.teamone.de/tippstricks/programmiertechnik/email/index.html */
var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|"([^\\\x80-\xff\015\012"]|\\[^\x80-\xff])+")";
var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\.[a-zA-Z]{2,5}";
var regex = "^" + usr + "@" + domain + "$";
var rgx = new RegExp(regex);
return rgx.exec(email) ? true : false;
}
}
</script>
<style type="text/css">
</style>
</head>
<body>
<form name="myForm" id="myForm" onsubmit="return doCheck()">
Ihr Name: <input type="text" name="fullname" id="fullname" value="" /> <br />
Bitte geben Sie entweder Ihre Telefon/Fax-Nummer oder Ihre E-Mail-Adresse an:<br />
Telefon/Fax: <input type="text" name="telfax" id="telfax" value="" /><br />
E-Mail: <input type="text" name="email" id="email" value="" />
<input type="submit" name="btnSubmit" id="btnSubmit" value="Senden" />
</form>
</body>
</html>