Formularfelder checken

Shuk

Grünschnabel
Hi!

Also ich prüfe per Javascript die Felder eines Formulars und lasse dann eine entsprechende Meldung anzeigen. Geht auch alles, aber irgendwie führt er immer die Form-Action aus, auch wenn false zurück gegeben wird. Hoffe ihr könnt mir sagen warum er das macht und wie ich verhindere, dass er die Seite aufruft (bei false).

Hier der Code:

Code:
<script type="text/javascript">
function checkfield(){

  	if (document.form1.rubric.value == 0)
   	{
   		alert ("Bitte wählen Sie eine Rubrik aus, in welcher der Artikel erscheinen soll.");
		document.form1.rubric.focus();
		return false;
	}
	if (document.form1.position.value == "")
	{
		alert ("Bitte wählen Sie eine Position aus, auf welcher der Artikel eingeordnet werden soll.");
		document.form1.position.focus();
		return false;
	}
	if (document.form1.title == "")
    {
		alert ("Bitte geben Sie einen Titel bzw. eine Überschrift für den Artikel ein.");
		document.form1.title.focus();
		return false;
	}
    if (document.form1.text == "")
	{
      alert ("Bitte geben Sie einen Text für den Artikel ein.");
	  document.form1.text.focus();
      return false;
   	}
	else return true;

}
</SCRIPT>

Und hier der Form-Aufruf:

Code:
<form name="form1" method="post" onSubmit="return checkfield();" action="##new.row.action##">


THX
Shuk
 
Bei mir funktioniert das gut(bei den ersten beiden Elementen).
Bei NR:3+4 funktionierts wahrscheinlich deshalb nicht, weil du dort das "value" vergessen hast...
 
Hi!

Danke für deine Antwort. Die ersten beiden beziehen sich auf DropDown-Selektfelder, die letzten beiden auf Textfelder. Die kann man doch auch ihne Value ansprechen, oder?

Nichts desto trotz dürfte aber das Formular nicht abgeschickt werden, zumindest wenn z.B. der erste Fall eintritt. Tut es aber immer. Es wird zwar erst korrekt die Meldung gezeigt, wenn ich dann auf "ok" klicke, ruft er die im Form-Teil angegebene Actio-Adresse aber auf.

Weiß noch jemand rat?

Shuk
 
hi , ich glaube du suchst so was :

<html>
<head>
<title>Formulareingaben &uuml;berpr&uuml;fen</title>
<script type="text/javascript">
<!--
function chkFormular()
{
if(document.Formular.User.value == "") {
alert("Bitte Ihren Namen eingeben!");
document.Formular.User.focus();
return false;
}
if(document.Formular.Ort.value == "") {
alert("Bitte Ihren Wohnort eingeben!");
document.Formular.Ort.focus();
return false;
}
if(document.Formular.Mail.value == "") {
alert("Bitte Ihre E-Mail-Adresse eingeben!");
document.Formular.Mail.focus();
return false;
}
if(document.Formular.Mail.value.indexOf('@') == -1) {
alert("Keine E-Mail-Adresse!");
document.Formular.Mail.focus();
return false;
}
if(document.Formular.Alter.value == "") {
alert("Bitte Ihr Alter eingeben!");
document.Formular.Alter.focus();
return false;
}
var chkZ = 1;
for(i=0;i<document.Formular.Alter.value.length;++i)
if(document.Formular.Alter.value.charAt(i) < "0"
|| document.Formular.Alter.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1) {
alert("Altersangabe keine Zahl!");
document.Formular.Alter.focus();
return false;
}
}
//-->
</script>
</head>
<body bgcolor="#EEEEEE" text="#000000">

<h1>Formular</h1>

<form name="Formular" action="http://www.google.de" method="post" onSubmit="return chkFormular()">
<pre>
Name: <input type="text" size="40" name="User">
Wohnort: <input type="text" size="40" name="Ort">
E-Mail: <input type="text" size="40" name="Mail">
Alter: <input type="text" size="40" name="Alter">
Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">

Zum Absenden muss eine Internetverbindung bestehen!
</pre>
</form>

</body>
</html>

;) oder ?

mfg amd
 
ja, aber kannst du mir den Unterschied zu meinem Skript sagen? Habe mich auch an einer solchen Vorgabe orientiert, sodass es eigentlich stimmen sollte...nur irgendwie es halt nicht einwandfrei...
 
Danke für deine Antwort. Die ersten beiden beziehen sich auf DropDown-Selektfelder, die letzten beiden auf Textfelder. Die kann man doch auch ihne Value ansprechen, oder?
...wenn es an dem ist, ist alles falsch.:-)

Um an den wert von Textfeldern zu kommen, musst du definitiv den "value" abfragen.
Um an den Wert einer ausgewählten Option einer Liste ranzukommen, gehts folgendermassen:
Code:
document.formular.liste.options[document.formular.liste.selectedIndex].value

beachte jedoch, dass sich dabei "value" nicht auf den sichtbaren Inhalt der Optionen bezieht... wenn du damit vergleichen willst, ersetzte das "value" im letzten Codeschnipsel durch "text".
 

Neue Beiträge

Zurück