Formularausgaben mit JavaScript
Patric
- javascript
Hallo Leute!
Problem: Habe Funktionen im Formular eingefügt. z.b. Wenner der User den Namen nicht einträgt, dann kommt die Meldung - "Bitte den Namen eingeben". Aber gleich darauf erscheint mir die Meldung "Wollen Sie das Formular abschicken" obwohl er nicht alle Pflichtfelder ausgefüllt hat.
Wieso? Habe in der Funktion etwas falsch gemacht.
Danke im voraus!!
Etwas umständlich!!!!!!!!!!!?????????
Hier die Javascript Funktion :
<script language="JavaScript">
<!--
function TesteZeichen(Teststring, Buchstaben)
{
var AlleZeichenOK = true;
for (var i=0; i<Teststring.length; i++)
if(Buchstaben.indexOf(Teststring.charAt(i))==-1)
AlleZeichenOK = false;
return AlleZeichenOK;
}
function TesteObEmail (Teststring)
{
OK = true;
if ((Teststring.indexOf('@')==-1)
|| (Teststring.indexOf('@') == 0)
|| (Teststring.indexOf('@') == (Teststring.length-1))
|| (Teststring.indexOf('.', Teststring.indexOf('@')) == -1)) OK = false;
return OK;
}
function CheckForm (myForm)
{
var check = true;
if (myForm.confcognome.value == '')
{
check = false;
alert ('Bitte geben Sie Ihren Namen an!');
}
else if (myForm.confnome.value=='')
{
check= false;
alert ('Bitte geben Sie Ihren Vornamen an!');
}
else if (!TesteZeichen (myForm.conftel.value, "1234567890-/"))
{
check=false;
alert('Bitte geben Sie eine gueltige Telefonnummer an!')
}
else if (myForm.confluogo.value=='')
{
check= false;
alert ('Bitte geben Sie Ihren Wohnort an!');
}
else if (myForm.confemailmit.value=='')
{
check= false;
alert ('Bitte geben Sie Ihre E-Mail-Adresse an!');
}
else if (!TesteObEmail(myForm.confemailmit.value==''))
{
check=false;
alert('Die eingegebene E-Mail-Adresse ist nicht gültig!')
}
if (check)
{if (confirm ('Alle Eingaben sind O.K., wollen Sie sie jetzt abschicken?'))myForm.submit();
}
return false;
}
//-->
</script>
Erst mal: Sehr gut kenn ich mich mit JavaScript nicht aus, sollte ich hier also alzuviel Müll schreiben, ignoriert es einfach.
if (check)
Damit wird eigentlich nur geprüft ob die Varable existiert, und das tut sie ganz deutlich. Mit
if (check == true)
sollte es klappen. Alternativ könnte man auch probieren die check-Variable ganz als Boolean zu machen:
check = new Boolean(true);
Hoffentlich konnte ich helfen
Matthias
Hallo.
Erst mal: Sehr gut kenn ich mich mit JavaScript nicht aus, sollte ich hier also alzuviel Müll schreiben, ignoriert es einfach.
Quatsch, das wird korrigiert.
if (check)
Damit wird eigentlich nur geprüft ob die Varable existiert, und das tut sie ganz deutlich.
Das ist so nicht richtig. Eine if-Abfrage ist eigentlich ganz simpel, sie macht was, wenn das, was man vergleicht, bzw. abfragt, wahr (true oder 1) ist, ansonsten, d.h. wenn's falsch (false oder 0) ist, macht sie's nicht.
Beispiel:
---------
<script type="text/javascript">
<!--
if(true){window.alert("Eine if-Abfrage macht nur etwas, wenn die abgefragten Bedingungen wahr sind.")}
if(false){window.alert("Sie macht aber nichts, wenn die abgefragten Bedingungen falsch sind.")}
//-->
</script>
Zweites Beispiel:
-----------------
<script type="text/javascript">
<!--
a = 1;
b = 2;
window.alert("a ist größer als b: " + (a > b));
window.alert("a ist kleiner als b: " + (a < b));
//-->
</script>
Beim ersten Alert wird "a ist größer als b: false" ausgegeben, beim Zweiten "a ist kleiner als b: true".
Daraus folgt, dass wenn man mit if abfragen lässt, ob a größer ist als b, nichts passieren würde, weil false zurückgegeben wird.
Letztes Beispiel:
-----------------
<script type="text/javascript">
<!--
a = 0;
b = false;
if(a){window.alert("a existiert.")}
else{window.alert("a ist 0, false oder existiert nicht.")}
if(b){window.alert("b existiert.")}
else{window.alert("b ist 0, false oder existiert nicht.")}
//-->
</script>
Sollte eigentlich selbsterklärend sein.
So gibt if(a){alert("BUH!")} nur "BUH!" aus, wenn a existiert und nicht den Wert false oder 0 hat.
Gruß
Norbert