Javascript wird nicht ausgeführt

Zack

cookies vader
In folgenden Formular wird der JavaScript nicht ausgeführt:
Javascript:
    <script language="JavaScript" type="text/javascript">
	function chkFormGespr()
	{
		if(document.post.datum.value!=""){
	      	alert("TEST");
	      	return false;
		}
		if(document.post.datum.value == "")
		{
			alert("Sie müssen ein Datum angeben.");
         	document.post.zeit.focus();
			return false;
		}
        if(document.post.zeit.value == "")
		{
            alert("Sie müssen eine Zeit angeben.");
            document.post.zeit.focus();
            return false;
        }
        if(document.post.dauer.value == "")
        {
        	alert("Sie müssen einen Dauer angeben.");
            document.post.dauer.focus();
            return false;
        }
        var dauer = document.post.dauer.value;
        var regExp = new RegExp( "^[0-9]{2}:[0-9]{2}:[0-9]{2}$");
        if(regExp.test(dauer)== false){
         	alert("Die angegebene Dauer entspricht nicht dem forgegebenen Format HH:MM:SS");
         	document.post.dauer.focus();
         	return false;
        }
      }
      </script>
HTML:
      <form action="new.php?test&amp;anid=3" method="post" name="post" onsubmit="return chkFormGespr()">
      Anrufer <select size="1" name="anid" onchange="NAME(this)">
      <option value="">[Namen auswählen]</option>
      <option value="new.php?anid=1?test&amp;anid=3">M&uuml;ller</option>
      <option value="new.php?anid=2?test&amp;anid=3">Schmidt</option>
      <option value="new.php?anid=3?test&amp;anid=3" selected="selected">Lehmann</option>
      <option value="new.php?anid=4?test&amp;anid=3">Klann</option>
      <option value="new.php?anid=5?test&amp;anid=3">Meyer</option>
      <option value="new.php?anid=6?test&amp;anid=3">Frank</option>
      <option value="new.php?anid=7?test&amp;anid=3">Thiel</option>
      <option value="new.php?anid=8?test&amp;anid=3">Peters</option>
      <option value="new.php?anid=9?test&amp;anid=3">Thomas</option>
      </select> Nummer w&auml;hlen

      <select size="1" name="anuid">
      <option value="3">01723856230</option>
      </select><br /><br />
      Empfänger <select size="1" name="enid" onchange="NAME(this)">
	      <option value="">[Namen auswählen]</option>
	      <option value="new.php?enid=1&amp;anid=3">M&uuml;ller</option>
	      <option value="new.php?enid=2&amp;anid=3">Schmidt</option>
	      <option value="new.php?enid=4&amp;anid=3">Klann</option>
	      <option value="new.php?enid=5&amp;anid=3">Meyer</option>
	      <option value="new.php?enid=6&amp;anid=3">Frank</option>
	      <option value="new.php?enid=7&amp;anid=3">Thiel</option>
	      <option value="new.php?enid=8&amp;anid=3" selected="selected">Peters</option>
	      <option value="new.php?enid=9&amp;anid=3">Thomas</option>
      </select>
      Nummer w&auml;hlen <select size="1" name="enuid">
      <option value="8">01724444228</option>
      </select>
      <br /><br />
      Gespr&auml;chsdatum: <input type="text" name="datum" value="DD.MM.YYYY" />
      <br /><br />
      Gespr&auml;chsuhrzeit: <input type="text" name="zeit" value="HH:MM:SS" />
      <br /><br />
      Gespr&auml;chsdaur: <input type="text" name="dauer" value="HH:MM:SS" />
      <br /><br />
      <input type="submit" name="n_gespr" style="width:150px;" value="Gespäch hinzufügen" />
      </form>

Kann mir wer sagen warum?!
 
Zuletzt bearbeitet von einem Moderator:
Hi,

was genau funktioniert denn nicht?

Einen wirklichen Fehler kann ich nicht ausmachen. Aufgefallen ist mir, dass in der ersten if-Bedingung geprüft wird, ob ein Wert eingegben wurde, nicht, ob das Feld leer gelassen wurde. Weiterhin sollte am Ende noch ein Wahrheitswert (true) zurück gegeben werden.

Ciao
Quaese
 
Das hab ich zum Prüfen gemacht ob der Javascript ausgeführt wird. Es kommt aber keine Message. Normal müste ja was kommen. Und False hab ich gewählt damit das Formular nicht abgeschickt wird und mir unnötigen Mist in die Datenbank schreibt. Es ist als ob einfach der Javascript umgangen wird. Im Browsere ist JavaScript allerdings aktiviert. Sonst würden ja auch die Funktionen onchange="NAME(this)" nicht gehen.

Sehr seltsam.
 
Hi,

dann muss der Fehler woanders zu suchen sein, denn das bisher gepostete funktioniert bei mir tadellos.
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function chkFormGespr(){
  if(document.post.datum.value==""){
      alert("TEST");
      return false;
  }
  if(document.post.datum.value == "")
  {
      alert("Sie müssen ein Datum angeben.");
      document.post.zeit.focus();
      return false;
  }
  if(document.post.zeit.value == "")
  {
      alert("Sie müssen eine Zeit angeben.");
      document.post.zeit.focus();
      return false;
  }
  if(document.post.dauer.value == "")
  {
      alert("Sie müssen einen Dauer angeben.");
      document.post.dauer.focus();
      return false;
  }
  var dauer = document.post.dauer.value;
  var regExp = new RegExp( "^[0-9]{2}:[0-9]{2}:[0-9]{2}$");
  if(regExp.test(dauer)== false){
      alert("Die angegebene Dauer entspricht nicht dem forgegebenen Format HH:MM:SS");
      document.post.dauer.focus();
      return false;
  }

  return true;
}

function NAME(objSel){
  alert(objSel.selectedIndex);
}
 //-->
</script>
</head>
<body>
<form action="new.php?test&amp;anid=3" method="post" name="post" onsubmit="return chkFormGespr()">
	Anrufer <select size="1" name="anid" onchange="NAME(this)">
	<option value="">[Namen auswählen]</option>
	<option value="new.php?anid=1?test&amp;anid=3">Müller</option>
	<option value="new.php?anid=2?test&amp;anid=3">Schmidt</option>
	<option value="new.php?anid=3?test&amp;anid=3" selected="selected">Lehmann</option>
	<option value="new.php?anid=4?test&amp;anid=3">Klann</option>
	<option value="new.php?anid=5?test&amp;anid=3">Meyer</option>
	<option value="new.php?anid=6?test&amp;anid=3">Frank</option>
	<option value="new.php?anid=7?test&amp;anid=3">Thiel</option>
	<option value="new.php?anid=8?test&amp;anid=3">Peters</option>
	<option value="new.php?anid=9?test&amp;anid=3">Thomas</option>
	</select> Nummer wählen

	<select size="1" name="anuid">
	<option value="3">01723856230</option>
	</select><br /><br />
	Empfänger <select size="1" name="enid" onchange="NAME(this)">
	  <option value="">[Namen auswählen]</option>
	  <option value="new.php?enid=1&amp;anid=3">Müller</option>
	  <option value="new.php?enid=2&amp;anid=3">Schmidt</option>
	  <option value="new.php?enid=4&amp;anid=3">Klann</option>
	  <option value="new.php?enid=5&amp;anid=3">Meyer</option>
	  <option value="new.php?enid=6&amp;anid=3">Frank</option>
	  <option value="new.php?enid=7&amp;anid=3">Thiel</option>
	  <option value="new.php?enid=8&amp;anid=3" selected="selected">Peters</option>
	  <option value="new.php?enid=9&amp;anid=3">Thomas</option>
	</select>
	Nummer wählen <select size="1" name="enuid">
	<option value="8">01724444228</option>
	</select>
	<br /><br />
	Gesprächsdatum: <input type="text" name="datum" value="DD.MM.YYYY" />
	<br /><br />
	Gesprächsuhrzeit: <input type="text" name="zeit" value="HH:MM:SS" />
	<br /><br />
	Gesprächsdaur: <input type="text" name="dauer" value="HH:MM:SS" />
	<br /><br />
	<input type="submit" name="n_gespr" style="width:150px;" value="Gespäch hinzufügen" />
</form>
</body>
</html>
Eventuell kannst du das Ganze mal online stellen.

Ciao
Quaese
 
Hi,

dein Dokument enthält zwei Formulare mit dem Name post. Aus diesem Grund wird über
Code:
document.post
immer das erste angesprochen. Dieses enthält jedoch die Felder nicht, was zu einer Fehlermeldung und dem Verweigern des Dienstes führt.

Versuche stattdessen das Formular mit Hilfe der Methode getElementsById und dem zugehörigen Index anzusprechen. Das erste Formular hat den Index 0, das zweite 1.
Code:
getElementsByName('post')[1]
Ciao
Quaese
 

Neue Beiträge

Zurück