Formularabfrage per Java Script?

LaReveuse

Grünschnabel
Hallo zusammen-
habe ein Formular in Dreamweaver erstellt, das ich per Java Script abfragen möchte. Die Abfrage funktioniert soweit auch, aber nur bis zu dem rotmarkierten Abschnitt. D.h., wenn ich diese rote Passage auskommentiere funktioniert es, ansonsten nicht :-(
Wo liegt bloß der Fehler? Sitze nun schon Stunden davor und kann es mir nicht erklären!
Vielleicht hat ja einer von Euch eine Antwort darauf?
Hier der Quelltext:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">

function pruefen()
{

// Überprüfen, ob Nachricht eingegeben wurde
if(document.form.kommentar.value == "")
{
alert("Sie haben vergessen Ihre Nachricht an uns einzugeben!");
document.form.kommentar.focus();
return false;
}

// Überprüfen Name
if(document.form.name.value == "")
{
alert ("Geben Sie bitte Ihren Nachnamen ein!");
document.form.name.focus();
return false;
}

// Wenn weniger als zwei Buchstaben im Feld "Name" eingegeben wurden
if(document.form.name.value.length < 2)
{
alert ("Ihr Nachname sollte schon aus zwei Zeichen bestehen");
document.form.name.focus();
return false;
}

// Wenn der Eingabewert des Feldes "Name" eine Zahl ist --> Fehlermeldung!
if(!isNaN (document.form.name.value))
{
alert ("Nur Buchstaben bitte!");
document.email.name.focus();
}

// Überprüfen Vorname
if(document.form.vorname.value == "")
{
alert ("Geben Sie bitte Ihren Vornamen ein!");
document.form.vorname.focus();
return false;
}

// Wenn weniger als zwei Buchstaben im Feld "Vorname" eingegeben wurden
if(document.form.vorname.value.length < 2)
{
alert ("Ihr Vorname sollte schon aus zwei Zeichen bestehen");
document.form.vorname.focus();
return false;
}

// Wenn der Eingabewert des Feldes "Vorname" eine Zahl ist --> Fehlermeldung!
if(!isNaN (document.form.name.value))
{
alert ("Nur Buchstaben bitte!");
document.form.name.focus();
}

// Überprüfen Strasse
if(document.form.strasse.value == "")
{
alert ("Geben Sie bitte Ihre Straße ein!");
document.form.strasse.focus();
return false;
}

// Überprüfen PLZ und Wohnort
if(document.form.plz.value == "")
{
alert ("Geben Sie bitte Ihren Wohnort und die dazugehörige PLZ ein!");
document.form.plz.focus();
return false;
}

// Überprüfen Telefon
if(document.form.telefon.value == "")
{
alert ("Geben Sie bitte Ihre Telefonnummer an!");
document.form.telefon.focus();
return false;
}

// Überprüfen Emailadresse
if(document.form.email.value == "")
{
alert ("Geben Sie bitte Ihre Emailadresse ein!");
document.form.email.focus();
return false;
}

if(document.form.email.value.indexOf('@') == -1 || document.form.email.value.indexOf('.') == -1)
{
alert ("Eine gültige Emailadresse muss ein \n '@' (At-Zeichen) und einen '.' (Punkt) \n enthalten.");
document.form.email.focus();
return false
}

//Emailadresse auf Slash, Semikolon, Komma, Leerzeichen sowie Umlaute überprüfen
var zeichen="/ ;:,äüö";
eingabe= document.form.email.value;
laenge= eingabe.length;

for(i=0;i<laenge;i++)
{
badchar= eingabe.charAt(i);
if(zeichen.indexOf(badchar) > -1)
{
alert("Die Zeichen \n Slash (/), \n Doppelpunkt (:), \n Semikolon (;), \n Komma (,) \n und Leerzeichen ( ) \n
sowie deutsche Umlaute (ä,ü,ö) \n sind in einer Email nicht erlaubt!");
document.form.email.focus();
return false;
}
}


// Abfrage, ob in der Emailadresse mehr als ein "@-Zeichen" vorkommt
atPosition= document.form.email.value.indexOf('@');
if(document.form.email.value.indexOf('@',atPosition +1) > -1)
{
alert ("Sie haben versehentlich mehr als ein '@-Zeichen' eingegeben!");
document.form.email.focus();
return false
}

// Taucht irgendwo nach dem "@-Zeichen" auch der Punkt auf?
if(document.form.email.value.indexOf('.', atPosition) == - 1
{
alert ("An irgendeiner Stelle NACH dem '@-Zeichen' sollte ein Punkt folgen!");
document.form.email.focus();
return false;
}

if(document.form.value.indexOf('.',atPosition) == -1)
{
alert ("An irgendeiner Stelle NACH dem'@-Zeichen' sollte ein Punkt folgen!");
document.form.email.focus();
return false;
}

punktPosition= document.form.email.value.lastIndexOf('.');

if(punktPosition+3>document.form.email.value.length)
{
alert ("Nach dem Punkt müssen noch mindestens 2 Zeichen folgen!")
document.form.email.focus();
return false;
}

if(punktPosition+5<document.form.email.value.length)
{
alert ("Bitte mindestens 2, aber NICHT mehr als 4 Zeichen nach dem Punkt!")
document.form.email.focus();
return false;
}


// Wenn alle Eingaben korrekt --> nachfragen, ob Daten abschicken
return confirm("Alle Eingaben sind korrekt. Möchten Sie die Daten abschicken?");
return false;
}
}

</script>

</head>

<body>
<p align="center"><font color="#FFC00" size="+3" face="AvantGarde Bk BT"><em>Kontaktformular</em></font></p>
<p align="center"><font color="#FFC000">Ihre Mitteilungen oder Fragen an uns:</font></p>
<form action="mailto:Sabine.Hof@t-online.de" method="post" name="form" enctype="text/plain" id="form">
<div align="center">
<p>
<textarea name="kommentar" cols="66" rows="10" id="kommentar"></textarea>
</p>
<p>&nbsp;</p>
</div>
<div align="center">
<table width="66%" border="0" align="center">
<tr>
<td width="21%"><font color="#FFC000" face="AvantGarde Bk BT">Name:</font></td>
<td width="79%"><input name="name" type="text" id="name"></td>
</tr>
<tr>
<td><font color="#FFC000" face="AvantGarde Bk BT">Vorname:</font></td>
<td><input name="vorname" type="text" id="vorname"></td>
</tr>
<tr>
<td><font color="#FFC000" face="AvantGarde Bk BT">Strasse:</font></td>
<td><input name="strasse" type="text" id="strasse"></td>
</tr>
<tr>
<td><font color="#FFC000" face="AvantGarde Bk BT">PLZ/Ort:</font></td>
<td><input name="plz" type="text" id="plz"></td>
</tr>
<tr>
<td><font color="#FFC000" face="AvantGarde Bk BT">Telefon-Nr.:</font></td>
<td><input name="telefon" type="text" id="telefon"></td>
</tr>
<tr>
<td><font color="#FFC000" face="AvantGarde Bk BT">Email:</font></td>
<td><input name="email" type="text" id="email"></td>
</tr>
</table>
<br>
<font size="2" face="AvantGarde Bk BT"> </font>
<table width="66%" border="0" align="center">
<tr>
<td><font color="#FFC000" size="2" face="AvantGarde Bk BT">Datenschutz: <br>
Wir verwenden die hier angegebenen Daten nur zu dem von Ihnen<br>
beabsichtigten Zweck. Wir geben Sie keinesfalls an Dritte weiter.</font></td>
</tr>
</table>
<p align="left">&nbsp; </p>
<table width="66%" border="0" align="center">
<tr>
<td height="26">
<div align="center">
<input type="submit" onClick="return pruefen()" name="Submit" value="absenden">
</div></td>
<td> <div align="center">
<input type="reset" onClick="return confirm ('Wollen Sie wirklich alle Eingaben löschen?')" name="Submit2" value="l&ouml;schen">
</div></td>
</tr>
</table>
<p align="left"><font color=""></font></p>
</div>
</form>
</body>
</html>
 
Hi,

um eMail-Adressen auf ihre Richtigkeit zu prüfen, bieten sich "Reguläre Ausdrücke" an. Einen
guten Beitrag hierzu findest du hier.

Wenn du dort die Funktion checkEmail unter der Überschrift "JavaScript" übernimmst
und dein JavaScript wie folgt abänderst, sollte die eMail auch korrekt geprüft werden.
Code:
function pruefen(){
	// Überprüfen, ob Nachricht eingegeben wurde
	if(document.form.kommentar.value == ""){
	  alert("Sie haben vergessen Ihre Nachricht an uns einzugeben!");
	  document.form.kommentar.focus();
	  return false;
	}

	// Überprüfen Name
	if(document.form.name.value == ""){
	  alert ("Geben Sie bitte Ihren Nachnamen ein!");
	  document.form.name.focus();
	  return false;
	}

	// Wenn weniger als zwei Buchstaben im Feld "Name" eingegeben wurden
	if(document.form.name.value.length < 2){
	  alert ("Ihr Nachname sollte schon aus zwei Zeichen bestehen");
	  document.form.name.focus();
	  return false;
	}

	// Wenn der Eingabewert des Feldes "Name" eine Zahl ist --> Fehlermeldung!
	if(!isNaN (document.form.name.value)){
	  alert ("Nur Buchstaben bitte!");
	  document.email.name.focus();
	}

	// Überprüfen Vorname
	if(document.form.vorname.value == ""){
	  alert ("Geben Sie bitte Ihren Vornamen ein!");
	  document.form.vorname.focus();
	  return false;
	}

	// Wenn weniger als zwei Buchstaben im Feld "Vorname" eingegeben wurden
	if(document.form.vorname.value.length < 2){
	  alert ("Ihr Vorname sollte schon aus zwei Zeichen bestehen");
	  document.form.vorname.focus();
	  return false;
	}

	// Wenn der Eingabewert des Feldes "Vorname" eine Zahl ist --> Fehlermeldung!
	if(!isNaN (document.form.name.value)){
	  alert ("Nur Buchstaben bitte!");
	  document.form.name.focus();
	}

	// Überprüfen Strasse
	if(document.form.strasse.value == ""){
	  alert ("Geben Sie bitte Ihre Straße ein!");
	  document.form.strasse.focus();
	  return false;
	}

	// Überprüfen PLZ und Wohnort
	if(document.form.plz.value == ""){
	  alert ("Geben Sie bitte Ihren Wohnort und die dazugehörige PLZ ein!");
	  document.form.plz.focus();
	  return false;
	}

	// Überprüfen Telefon
	if(document.form.telefon.value == ""){
	  alert ("Geben Sie bitte Ihre Telefonnummer an!");
	  document.form.telefon.focus();
	  return false;
	}

	// Überprüfen Emailadresse
	if(document.form.email.value == ""){
	  alert ("Geben Sie bitte Ihre Emailadresse ein!");
	  document.form.email.focus();
	  return false;
	}

	if(document.form.email.value.indexOf('@') == -1 || document.form.email.value.indexOf('.') == -1){
	  alert ("Eine gültige Emailadresse muss ein \n '@' (At-Zeichen) und einen '.' (Punkt) \n enthalten.");
	  document.form.email.focus();
	  return false
	}

  //Emailadresse überprüfen
  eingabe = document.form.email.value;

  if(!checkEmail(eingabe)){
    alert("Keine gültige eMail-Adresse angegeben");
    return false;
  }

  // Wenn alle Eingaben korrekt --> nachfragen, ob Daten abschicken
  return confirm("Alle Eingaben sind korrekt. Möchten Sie die Daten abschicken?");
}

// Funktion übernommen von: http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html
// Autorin: Antje Hofmann
function checkEmail(email) {
  var proto  = "(mailto:)?";
  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  = "^" + proto + "?" + usr + "\@" + domain + "$";

  var rgx    = new RegExp(regex);
  return rgx.exec(email) ? true : false;
}
Ciao
Quaese
 

Neue Beiträge

Zurück