Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja adresu e-mail
Forum PHP.pl > Forum > Po stronie przeglądarki
stas13111979
Witam,
pracuję nad pewnym formularzem i chciał bym wprowadzić w nim walidację wprowadzanych danych, najpierw po stronie przeglądarki w JavaScript a w dalszej kolejności po stronie serwera.
Czy mógł by ktoś podać krótką funkcję/skrypt w JavaScript sprawdzającą wprowadzony np. adres e-mail ?
Zależy mi na tym aby poznać mechanizm działania takiego skryptu, bo przeglądając przykłady się trochę zamotałem gdzie umieścić:
- sam skrypt sprawdzający
- w którym miejscu uruchomić walidację pola
- gdzie podać nazwę pola sprawdzanego
stas13111979
Czyli
Kod
function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}


umieścić zamiast xxxxxxxxx

Kod
<title>Formularz</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="styl.css" rel="stylesheet" type="text/css">
<script language="JavaScript">

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

</script>
</head>

a uruchomienie ?
Kod
<form name="zgloszenie" method="POST" action="http://________________sendformmail.php3">

czy na końcu
Kod
    <input type="submit" name="Wyślij" value="Wyślij" onClick=_______________</div></td>
Comandeer
Zdarzenie submit – nie ma co kombinować z klikaniem na przycisku.
stas13111979
Znalazłem coś takiego i chciał bym to zaimplementować w swój formularz jest tam kilka pól wewnątrz jednego form
Kod
<form name="validation" onSubmit="return checkbae()">
    Please input a valid email address:<br />

    <input type="text" size=18 name="emailcheck">
    <input type="submit" value="Submit">
</form>

<script language="JavaScript1.2">
    var testresults
    function checkemail(){
        var str = document.validation.emailcheck.value
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
        if (filter.test(str))
            testresults = true
        else {
            alert("Please input a valid email address!")
            testresults = false
        }
        return (testresults)
    }
</script>

<script>
    function checkbae(){
        if (document.layers || document.getElementById || document.all)
            return checkemail()
        else
            return true
    }
</script>

Pierwsze pytanie:
czy
onSubmit="return checkbae()" dokleić do przycisku wyślij w moim formularzu czyli na końcu form czy na poczatku przy definiowaniu
<form name="zgloszenie" method="POST" action="http://www.__________________/php/sendformmail.php3" ?


Drugie pytanie:
gdzie w kodzie formularza, html4 bodajże, umieścić te dwa skrypty java, wenątrz form czy na poczatku body ?
Trzecie pytanie:
czy zmienić <script language="JavaScript1.2"> na <script language="JavaScript"> ?
Comandeer
Cytat
czy onSubmit="return checkbae()" dokleić do przycisku wyślij w moim formularzu czyli na końcu form czy na poczatku przy definiowaniu

Na form, chociaż jeszcze lepiej wykorzystać do tego JS: https://developer.mozilla.org/en-US/docs/We...ddEventListener
Cytat
gdzie w kodzie formularza, html4 bodajże, umieścić te dwa skrypty java, wenątrz form czy na poczatku body ?

Najlepiej na końcu bodyhttps://developer.yahoo.com/performance/rules.html#js_bottom
Cytat
czy zmienić <script language="JavaScript1.2"> na <script language="JavaScript"> ?

Zmienić na <script>, całkowicie wywalając [language].

Ogólnie to pomyślałbym nad walidacją przy pomocy Constraint API + [type=email]https://developer.mozilla.org/en-US/docs/We...aint_validation
stas13111979
Czyli mniej więcej tak to powinno wyglądać ?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ENPL">
<html>
<head>
<title>Formularz</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="styl.css" rel="stylesheet" type="text/css">
<body topmargin="0">
<table width="800" height="675" border="0" align="center" cellpadding="2" cellspacing="3" class="tekst3"><tr>
<td height="669" valign="top"><br>
<table border="0" cellspacing="3" cellpadding="2"><tr>
<td width="100%" class="tekst3">..................</td></tr>
<tr><td class="tekst2"><hr size="1" noshade></td></tr>
<tr><td>

<form name="zgloszenie" method="POST" action="http://www._____/php/sendformmail.php3" onSubmit="return checkbae()">
<table width="100%" border="0" cellpadding="3" cellspacing="0" class="tekst3"><tr>
<td width="40%" class="tekst2"><div align="right">nazwa wycieczki</div></td>
<td width="2%"></td>
<td width="58%">

<select name="impreza" size="1">
<option selected>-- wybierz wycieczkę --</option>
<option>.....
<option>.....
.................
</select></td></tr>

<tr><td width="40%" class="tekst2"> <div align="right">Twój adres e-mail</div></td><td width="2%"></td>
<td width="58%" class="tekst2"> <input type="text" name="mailowy" maxlength="50" size="20" </td></tr>
........................

<input type="submit" name="Wyślij" value="Wyślij" </div></td>
<td width="2%"></td>
<td width="58%">
<input type="hidden" name="subject" value="Zgłoszenie na wycieczkę">
<input type="reset" name="kasuj" value="Kasuj dane"></td></tr>

<tr><td colspan="3"></td></tr></table>

<script>
var testresults
function checkemail(){
var str = document.validation.mailowy.value
var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str))
testresults = true
else {
alert("Please input a valid email address!")
testresults = false
}
return (testresults)
}
</script>

<script>
function checkbae(){
if (document.layers || document.getElementById || document.all)
return checkemail()
else
return true
}
</script>

</body>
</html>
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.