Валидация форм

boot

Новичок
Валидация форм

сделал проверку на php, все чудненбко работает

но как сделать тоже самое на JS неимею понятия, если не влом подскажите

<?php
if(isset($_POST['reg'])) {
$id=$_POST['id'];
$name=$_POST['name'];
$email=$_POST['email'];
$mesage=$_POST['mesage'];

if(trim($name)==''){
die("Вы не ввели имя !");
}
if(strlen($name)<5) {
die("Имя должно быть не мение 5-и символов !");
}

if(trim($email)=='') {
die("Вы не ввели ваш EMAIL!");
}

if (!preg_match("/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})
+\.[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/",$email)){
die("Ошибочный формат EMAIL-адресса !");
}
?>
 

serglt

Анус, ой, Ахтунг
<form action="" onSubmit="
if (this.email.value == '') {
alert ('Anus!');
this.email.focus ();
return false;
}

if (!this.email.value.match (/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+\.[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/)) {
...
}
...
...
...
return true;
">
А вообще в гугле посмотри по строковым объектам яваскрипта. ТАм найдешь все нужные функции
 

maxwell

artifex
Re: Валидация форм

PHP:
function CheckMessage()
{
            var name = $('name').value;
            var email = $('email').value;
            var message = $('message').value;
            var code = $('code').value;
            if (name == "")
            {
              alert('Enter Name');
              $('name').focus();
            }
            else if (email == "")
            {
              alert('Enter email');
              $('email').focus();
            }
            else if (message == "")
            {
              alert('Enter Quoestion or offer');
              $('message').focus();
            }
            else if (code == "")
            {
              alert('Enter code');
              $('code').focus();
            }
            else
            {
              Send_Message();
            }
}
Поясниения, если не используешь прототайп, то вместо
$("id")
пиши
document.getElementById("id")
В форме добавляешь буттон
<input type=button onClick="CheckMessage();" id="send_btn" value="Send">

Если нужно могу и Send_Message(); написать
 

boot

Новичок
есть такой код

<script language="JavaScript">
function check_form() {

forma = document.form1;

st = 1;
message = '';

if (forma.name.value=='') {
message = message + 'введите имя\n';
st = 0;
}

if (forma.email.value=='') {
message = message + 'введите E-mail\n';
st = 0;
}
if (!forma.email.value.match== (/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/))
{
message = message + 'ошибка в формате E-mail\n';
st = 0;
}
if (st==0) {
alert(message);
}
else {
forma.submit();
}

}
</script>

не выполняет проверку

if (!forma.email.value.match== (/^[a-zA-Z0-9_\-.]+@(?:[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})+(\.[a-zA-Z0-9_]{1,3})*/))
{
message = message + 'ошибка в формате E-mail\n';
st = 0;
}

подскажите в чем причина
 

maxwell

artifex
boot
Вот расскажи мне зачем пытаться проверить "формат" мыла?
Если пользователь ввел неправильно свое мыло - сам виноват, ответа не получит, а если это ребятишки балуюцо, то им ничего не стоит написать что-то вроде [email protected]
Имхо если хочешь себя обезопасить от ребятишек, сделай сукьюрити код...
 

SelenIT

IT-лунатик :)
maxwell, вот для того и проверяют - чтобы честный, но рассеянный юзер все-таки получил ответ, несмотря на кривизну его пальцев. Из вежливости, одним словом...
 

boot

Новичок
всем спасибо, написал, работает,
кому интересно, получилось примерно следующие:


<script language="JavaScript">
function email_checker(zx) {

var z=1;
var email=zx;
var zplus=0;
var dot=0;
for (var I=0; I<email.length; I++) {
em=email.charAt(I);
em1=email.charAt(I+1);

if (em=='*' | em=='%' | em=='!' | em=='$' | em=='&' | em=='(' | em==')' | em==' ' | em=='#' | em=='/' | em==',' | em=='?' | em=='+' | em=='=' | em=='[' | em==']' | em=='}' | em=='{') {
z=0;
}
if ((em=='@' & em1=='.') | (em=='.' & em1=='@')) {
z=0;
}
if (em=='@') {
zplus++;
}
if (zplus>0) {
if (em=='.') {
dot++;
}
}
}

em2=email.charAt(email.length-1);
em3=email.charAt(0);
if (em2=='_' | em3=='_' | em2=='.' | em3=='.' | em3=='@') {z=0;}
if (zplus!=1 | dot==0) {z=0;}

return z;
}


function check_form() {

forma = document.form1;

st = 1;
message = '';

if (forma.name.value=='') {
message = message + '&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#200;&#236;&#255;\n';
st = 0;
}

if (forma.email.value==''|| email_checker(forma.email.value)==0) {
message = message + '&#205;&#229; &#226;&#229;&#240;&#237;&#251;&#233; &#244;&#238;&#240;&#236;&#224;&#242; E-mail\n';
st = 0;
}

if (st==0) {
alert(message);
}
else {
forma.submit();
}

}
</script>
 

maxwell

artifex
SelenIT
хм..., а второе поле для подтверждения мыла уже отменили? или типа это устарело?
А что если скриптик будет немного глючить? Пользователь зайдет, наберет какой-нить необычный мейл(правильный), а его пошлют.....

Причем я уверен, больше он не вернется....
 

BRat

o_0
maxwell
не знаю как вы, но я обычно в это поле просто копирую значение, введенное в первое поля для мыла :)

"А что если скриптик будет немного глючить?" - это уже от создателя скриптика зависит.
 

maxwell

artifex
Автор оригинала: BRat
maxwell
не знаю как вы, но я обычно в это поле просто копирую значение, введенное в первое поля для мыла :)
Ну если юзверь и такое творит - сам виноват 100%, я не должен отвечать за глупость юзера.

"А что если скриптик будет немного глючить?" - это уже от создателя скриптика зависит.
в любом случае мы должны предусмотреть вариант "неработающего или глючного" скрипта, ведь отладка вещь нифига не тривиальная.
 
Сверху