Hallo
Ich habe auf meiner Privaten Website eine kleines Formular, wo ich gerne die Eingabefelder "Nachricht", "Name", "eMail" überprüfen lassen möchte, das diese auch ausgefüllt werden.
Nun habe ich folgendes Java, dass aber nicht richtig funktioniert und komme hier mit dem Javascript nicht weiter. Also die überprüfung der Felder "Nachricht" und "Name" funktioniert, aber die Überprüfung der "Email" geht nicht richtig.
Wenn ich z.B. bei dem Fomular als eMail "test@test" eingebe, kommt keine Meldung. Es sollte doch aber die Meldung: "Bitte geben Sie eine gültige E-Mail-Adresse ein!" kommen?
Wenn ich gar keine eMail Eingebe, kommt die Meldung:
Bitte füllen Sie folgende Felder aus:
- eMail
Stimmt der "emailfilter" nicht? Oder was ist hier Falsch?
Edit: Wenn ich bei der eMail nur ein Leerschlag eingebe, kommt auch keine Meldung, und das Formular wird versendet. Vielleicht gibt es ja auch eine bessere Java Script Variante.
Ich habe auf meiner Privaten Website eine kleines Formular, wo ich gerne die Eingabefelder "Nachricht", "Name", "eMail" überprüfen lassen möchte, das diese auch ausgefüllt werden.
Nun habe ich folgendes Java, dass aber nicht richtig funktioniert und komme hier mit dem Javascript nicht weiter. Also die überprüfung der Felder "Nachricht" und "Name" funktioniert, aber die Überprüfung der "Email" geht nicht richtig.
Wenn ich z.B. bei dem Fomular als eMail "test@test" eingebe, kommt keine Meldung. Es sollte doch aber die Meldung: "Bitte geben Sie eine gültige E-Mail-Adresse ein!" kommen?
Wenn ich gar keine eMail Eingebe, kommt die Meldung:
Bitte füllen Sie folgende Felder aus:
Stimmt der "emailfilter" nicht? Oder was ist hier Falsch?
Code:
// JavaScript Document
function formCheck(formobj){
// Enter name of mandatory fields
var fieldRequired = Array("Nachricht", "Name", "eMail");
// Enter field description to appear in the dialog box
var fieldDescription = Array("Nachricht", "Name", "eMail");
// dialog message
var alertMsg = "Bitte füllen Sie folgende Felder aus:\n";
var l_Msg = alertMsg.length;
for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
if (obj){
switch(obj.type){
case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
case "text":
case "textarea":
if (obj.value == "" || obj.value == null){
alertMsg += " - " + fieldDescription[i] + "\n";
}
break;
default:
}
if (obj.type == undefined){
var blnchecked = false;
for (var j = 0; j < obj.length; j++){
if (obj[j].checked){
blnchecked = true;
}
}
if (!blnchecked){
alertMsg += " - " + fieldDescription[i] + "\n";
}
}
}
}
if (alertMsg.length == l_Msg){
return true;
}else{
alert(alertMsg);
return false;
}
}
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
function checkmail(e){
var returnval=emailfilter.test(e.value);
if (returnval==false){
alert("Bitte geben Sie eine gültige E-Mail-Adresse ein!");
e.select();
}
return returnval;
}
HTML:
<form accept-charset="utf-8" id="kontaktform" method="post" action="phpmailer/phpmail.php" onsubmit="javascript:return formCheck(this);" >
Edit: Wenn ich bei der eMail nur ein Leerschlag eingebe, kommt auch keine Meldung, und das Formular wird versendet. Vielleicht gibt es ja auch eine bessere Java Script Variante.
Zuletzt bearbeitet: