Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка формы регистрации
 
 автор: gOFREe   (22.06.2009 в 23:45)   письмо автору
 
 

Подскажите пожалуйста что тут не правильно, не хотит работать.

function myReg (x)
{

 x = x.toLowerCase();
 var filter = /([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,3}$)/;
  if(x.pass.value!=x.pass2.value){alert('Пароли не совпадают!');return false;}else return true;
if (!x.r_login.value.length && !x.r_pass.value.length && !x.r_pass2.value.length && !x.r_email.value.length) {alert ('Заполните все обязательные поля!'); return false;} else return true;
if (!filter.x.email) {
  alert("Пожалуйста, введите ваш e-mail корректно!");
          return false;
     } else return true;

  Ответить  
 
 автор: PAT   (23.06.2009 в 00:05)   письмо автору
 
   для: gOFREe   (22.06.2009 в 23:45)
 

1. Судя по первой строке функции, вы передаёте ей какую-то строку x, ибо только строку можно
"перевести" в нижний регистр методом toLowerCase ().

2. Затем, в третьей строке функции вы пишете конструкцию (x.pass.value != x.pass2.value), где,
как я понимаю, pass и pass2 - это имена полей типа password.
Браузер ждёт от вас конструкцию (ФОРМА.pass.value != ФОРМА.pass2.value),
где ФОРМА - это ОБЪЕКТ, а вы подсовываете ему вместо ОБЪЕКТА
какую-то строчку с символами в нижнем регистре.
Именно тут браузер на вас обижается и перестаёт работать.

Если передаваемая вами строка - это ИМЯ ФОРМЫ, которое вы почему-то передаёте
в непонятно каком регистре и которую поэтому вам надо переводить в нижний,
то вместо x вам следует писать
(document.forms [x].pass.value != document.forms [x].pass2.value).

Ну а если вы передаёте функции не имя формы, а что-то типа "Привет, функция!",
то я даже и не знаю - что вам посоветовать :-)

  Ответить  
 
 автор: gOFREe   (23.06.2009 в 00:43)   письмо автору
 
   для: PAT   (23.06.2009 в 00:05)
 

Покапавшись по форуму вот что слепил, ошибку выводит, но скрипт не останавливает.

function validateEmail(email) {
        //Validating the email field
        var re = /([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,3}$)/;
        if (! email.match(re)) {
            return (false);
        }
        return(true);
    } 
    
function myReg()
    {
        
        if (!document.r_form.r_login.value.length 
         || !document.r_form.r_pass.value.length 
         || !document.r_form.r_pass2.value.length 
         || !document.r_form.r_email.value.length){
            alert("Заполните все обязательные поля!");return false;}
           
        else if(!validateEmail(document.r_form.r_email.value)) {
            alert("Пожалуйста, введите ваш e-mail корректно!"); return false;}
               
        else if(document.r_form.login.value.length<3){
            alert("Кол-во символовов в поле 'Логин' должно быть не меньше 3-х!");return false;}
        // password
        else if(document.r_form.pass.value.length<6){
            alert("Кол-во символовов в поле 'Пароль' должно быть не меньше 6-х!");}
        else if(document.r_form.pass.value != document.r_form.pass2.value){
            alert("Введеные пароли не совпадают!");return false;}
        else
        {
            document.r_form.submit();
        } 



  Ответить  
 
 автор: gOFREe   (23.06.2009 в 00:55)   письмо автору
 
   для: gOFREe   (23.06.2009 в 00:43)
 

Так разобрался, всем спасибо
<input type="submit" name="send" onclick="myReg(); return false;" value="Зарегистрироваться">

  Ответить  
 
 автор: gOFREe   (23.06.2009 в 01:02)   письмо автору
 
   для: gOFREe   (23.06.2009 в 00:55)
 

Опять косяк, теперь он вообще запрос на сервер не посылает :) Я запутался, объясните еще раз пожалуйста )

  Ответить  
 
 автор: sl1p   (23.06.2009 в 01:09)   письмо автору
 
   для: gOFREe   (23.06.2009 в 01:02)
 

:*

  Ответить  
 
 автор: sim5   (23.06.2009 в 06:05)   письмо автору
 
   для: gOFREe   (23.06.2009 в 00:55)
 


<form action="" method="post" onsubmit="return myReg()">
.......
<input type="submit" name="send" value="Зарегистрироваться">
</form>

document.r_form.submit(); - из функции убрать, она должна возвращать лишь true или false, в зависимости от проверки.

  Ответить  
 
 автор: gOFREe   (23.06.2009 в 21:18)   письмо автору
 
   для: sim5   (23.06.2009 в 06:05)
 

Спасибо всем!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования