tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
339
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Chrisi Chrisi ist offline Grünschnabel
    Registriert seit
    Dec 2011
    Beiträge
    1
    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?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    
    // 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-Code:
    <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.
    Geändert von Chrisi (01.12.11 um 15:09 Uhr)
     

  2. #2
    Avatar von javaDeveloper2011
    javaDeveloper2011 javaDeveloper2011 ist offline Mitglied Brokat
    Registriert seit
    Feb 2011
    Beiträge
    445
    Blog-Einträge
    5
    Hi Chrisi,

    Willkommen bei tutorials.de!
    Also ich hätte ne andere - aber auch nicht perfekte und ziemlich strenge RegEx:
    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    
    var emailfilter = new RegExp("^[0-9a-zA-Z+\\-*/=?\\^'!%&#_~{|}$`]" +
        "([0-9a-zA-Z+\\-*/=?\\^'!%&#_~{|}$`.]?" +
        "[0-9a-zA-Z+\\-*/=?\\^'!%&#_~{|}$`])*" +
        "@" +
        "[a-zA-Z]" +
        "([a-zA-Z\\-.]?" +
        "[a-zA-Z])*" +
        "\\.[a-zA-Z]{2,3}$");
     

Ähnliche Themen

  1. [jQuery] - Problem bei Formular Validierung
    Von sonicks im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 16.03.10, 21:22
  2. Formular Validierung die 1000ste
    Von ropueh im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 04.03.10, 17:35
  3. PHP-Formular Validierung der Email
    Von claus0001 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 14.08.09, 13:02
  4. Formular-Validierung
    Von Neurodeamon im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 11.05.06, 01:51
  5. Formular Validierung
    Von riddla im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 16.12.05, 01:14