Was mache ich da falsch?

Hallo,

ich will gerade ein paar Felder in einem Formular prüfen lassen, ob da was drin steht oder nicht. Das mache ich wie folgt:

Code:
<script type="text/javaScript">
function CheckSubmit(form)
{
if (!form.alter.value) {
    alert("Du musst dein Alter angeben!");
        form.alter.focus();
  return false;
   }
if (!form.geschlecht.value) {
    alert("Du musst dein Geschlecht angeben!");
        form.geschlecht.focus();
  return false;
   }
if (!form.suche.value) {
    alert("Du musst angeben was du suchen willst!");
        form.suche.focus();
  return false;
}
if (!form.text.value) {
    alert("Du musst einen Text angeben!");
        form.text.focus();
  return false;
   }
return true;
}
</script>

So nun kommt aber mein Problem. Wenn ich die Seite aufrufe und dann einfach auf abschicken klicke, dann kommt dass ich doch bitte das Alter angeben soll. Das heißt, dass es da ging die abfrage. Dann gebe ich nun das Alter ein und sage dann einfügen dann kommt die Meldung, bitte gebe dein Geschlecht ein. Dann drücke ich bei dem alert auf OK und was passiert, er läd die Seite neu und alles ist wieder weg. Was mache ich da nur falsch. warum ging es denn beim ersten und dann beim zweiten nicht mehr?

Gruß Knuddel_Maus_Lilly
 
Poste mal das Formular dazu.
Ich nehme stark an, dass "form.geschlecht" nicht existiert.... das würde einen JS-Fehler erzeugen, das Skript wird nicht weiter verarbeitet....und das Formular gesendet, was sich in Form des Neuladens manifestiert.
 
Also ich weiß ja nicht, was du gemacht hast, aber folgendes funktioniert bei mir Einwandfrei:
HTML:
<script type="text/javaScript">
         	function CheckSubmit(form) {
         		if (!form.alter.value) {
         			alert("Du musst dein Alter angeben!");
         			form.alter.focus();
         			return false;
         		}
         		if (!form.geschlecht.value) {
         			alert("Du musst dein Geschlecht angeben!");
         			form.geschlecht.focus();
         			return false;
         		}
         		if (!form.suche.value) {
         			alert("Du musst angeben was du suchen willst!");
         			form.suche.focus();
         			return false;
         		}
         		if (!form.text.value) {
         			alert("Du musst einen Text angeben!");
         			form.text.focus();
         			return false;
         		}
         		return true;
         	}
         </script>
         
         </head><body>
         
         <form id="formular" action="Untitled-1.htm"><div>
         	<input type="text" name="alter" /><br />
         	<input type="text" name="geschlecht" /><br />
         	<input type="text" name="suche" /><br />
         	<input type="text" name="text" /><br />
    	<input type="submit" name="submit" value="Submit!" onclick="return CheckSubmit(this.form);" />
         </div></form>
Was du beschreibst, hört sich für mich so an als hättest du schlicht nur "CheckSubmit(this.form)" statt "return CheckSubmit(this.form);" bei dir im onclick stehen, aber ich habe natürlich keine Ahnung wie dein Formular aussieht und ob es da überhaupt einen onlick gibt.

So sparst du dir übrigens bei deiner Funktion ein wenig Code und kannst die Funktion mit nem anderen Array bestehend aus Elementnamen und Fehler-Nachricht für andere Formulare verwenden:
HTML:
<script type="text/javaScript">
     	arr = new Array(
     		new Array('alter','geschlecht','suche','text'), // Elements
     		new Array('Du musst dein Alter angeben!', // Error-Messages
     			'Du musst dein Geschlecht angeben!',
     			'Du musst angeben was du suchen willst!',
     			'Du musst einen Text angeben!'
     		)
     	)
     	
     	function CheckSubmit(form) {
     		for (i=0;i<arr[0].length;i++) {
     			if (!eval('form.'+arr[0][i]).value) {
     				alert(arr[1][i]);
 				eval('form.'+arr[0][i]).focus();
     				return false;
     			}
     		}
     		return true;
     	}
     </script>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück