Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Walidacja formularza za pomoca javascript
Forum PHP.pl > Forum > Przedszkole
trike
Probuje sprawdzic formularz przed wyslaniem ale chodzi mi to tylko w google chrome, w mozilli i ie sprawdza tylko pierwsza instrukcje warunkowa, ponizej jest kod. Na poczatek robie petle ktora powinna przechodzic przez kazdy element
-pierwsza instrukcja if sprawdzam czy pole jest typu text lub textarea i czy nie jest puste (wykluczam tylko pole "phone")
-nastepnie poprzez instrukcje switch chce dodatkowo sprawdzic pare innych pol ze wzgledu na to czy nie sa przypadkowe rzeczy wpisane i to dziala mi tylko dla pola email w ie i firefoxie (w google chrome chodzi dobrze).
Prosze o pomoc
Kod
<script type="text/javascript">

// <![CDATA[
function validate(form)
{
    for (i = 0; i < form.length; i++)
    {
        var field = form.elements[i];
        //validating mandatory fields
        if ((field.type == "text" || field.type=="textarea") && field.name != "phone" && field.value == "")
        {
            alert("Please fill in all mandatory fields!");
            return false;
        }
        
        
        switch (field.name){
        case ("email"):
            var valid=/^[0-9a-z]+([\.\-_][0-9a-z]+)*\@[0-9a-z]+([\.\-][0-9a-z]+)*\.[a-z]{2,4}$/;
            var val = field.value.match(valid);
            if (val == null) {
                alert("Invalid e-mail address!");
                    return false;
            }
                 break;
        case ("country"):
            if (country.selectedIndex <= 0)
            {
                alert("Please select a country!");
                return false;
            }
            break;
        case ("mobile"):
            var valid=/^[0-9]{10,}$/;
            var val = field.value.match(valid);
            if (val == null) {
                alert("Invalid telephone number!");
                    return false;
            }
            break;
        }
    }
    return true;
}
// ]]>

</script>
bastard13
Na pierwszy rzut oka wszystko wygląda dobrze.
Spróbuj usunąć nawiasy z case tzn. nie 'case ("mail"):' tylko 'case "mail":'.
Jeżeli to nie zadziała to zakomentuj sobie działania w case'ach i wrzuć tam jedynie alerty w stylu alert('mail'),alert('country'), bo wydaje mi się, że twój switch nie dochodzi do pozostałych case'ów skoro działa ci to dla pola mail.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.