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

HTML+CSS+JavaScript

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

 

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

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

тема: Проверка Формы
 
 автор: codexomega   (05.11.2005 в 20:21)   письмо автору
 
 

Есть скрипт, который проверяет поля формы.
Но он что-то спотыкается на отправке формы, после того как все поля проверенны.
Скорее всего из за строки рег.выр. ответственной за проверку email'a.
Email проверяется правильно, но сама строка вроде вне кавычек и после ее декларации нет ;
Если заключить var re в кавычки, рег.вар уже не срабатывает корректно.
Вопрос: как исправить?
Спасибо.
Вот формуляр:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Omega Intranet - Register</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript">
    function validateEmail(email) {
        //Validating the email field
        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,}))$/
        if (! email.match(re)) {
            return (false);
        }
        return(true);
    }

    function checkFields()
    {
        // name
        if (document.frm_register.name.value.length<1)
            alert("Please enter your name!");
        // email    
        else if(!validateEmail(document.frm_register.email.value))
            alert("Please enter your valide Email!");
        // organization
        else if(document.frm_register.organization.value.length<1)
            alert("Please enter your organization!");
        // login
        else if(document.frm_register.login.value.length<5)
            alert("Your login must contain 5 chars minimum!");
        // password
        else if(document.frm_register.password1.value.length<6)
            alert("Your password must contain 6 chars minimum!");
        else if(!(document.frm_register.password1.value == document.frm_register.password2.value))
            alert("Your confirmed password must match the initial value!");
        else
        {
            document.forms.frm_register.submit();
        }
    }
</script>


</head>

<body>
<h1>New User Registration Form</h1>
<hr />
<div>
<form action="register.php" method="post" name="frm_register">
<fieldset>
<legend><h3>1.Enter your name, email address and organization</h3></legend>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="10%"><p>name :</p></td>
        <td><p><input name="name" type="text" size="40" maxlength="40" /></p></td>
      </tr>
      <tr>
        <td width="10%"><p>email :</p></td>    
        <td><p><input name="email" type="text" size="40" maxlength="40" /></p></td>
    </tr>
    <tr>
        <td width="10%"><p>organization :</p></td>
        <td><p><input name="organization" type="text" size="40" maxlength="40" /></p></td>
      </tr>
</table>
</fieldset>
<fieldset>
<legend><h3>2.Enter login and password</h3></legend>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="10%"><p>login :</p></td>
        <td><p><input name="login" type="text" size="25" maxlength="25" /></p></td>
      </tr>
      <tr>
        <td width="10%"><p>password :</p></td>    
        <td><p><input name="password1" type="password" size="25" maxlength="25" />
        </p></td>
    </tr>
    <tr>
        <td width="10%"><p>confirm password :</p></td>
        <td><p><input name="password2" type="password" size="25" maxlength="25" />
        </p></td>
      </tr>
</table>
</fieldset>
<fieldset>
<legend><h3>3.Verify your information and register</h3></legend>
<p>
    <input name="reset" type="reset" value="Reset" />
    <input name="submit" type="button" value="Register" onclick="checkFields()" />
</p>
</fieldset>
</form>
</div>
</body>
</html>



Если все поля правильно заполненны, при отправке формы вылазит ошибка:

Error: Object doesn't support this property or method.

   
 
 автор: codexomega   (06.11.2005 в 03:33)   письмо автору
 
   для: codexomega   (05.11.2005 в 20:21)
 

С регулярным выражением разобрался, немного оптимизировал:

var re = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/; 

Переименовал кнопку submit на register.
Сообщений об ошибке больше нет.
Но возникла другая проблема.
Форма не отправляется. Вообще ничего не происходит после того как поля заполнены и проверены...

   
 
 автор: elenaki   (06.11.2005 в 11:36)   письмо автору
 
   для: codexomega   (06.11.2005 в 03:33)
 

<input name="submit" type="button"

тут тип должен быть submit или событие onClick, если это простая кнопка

   
 
 автор: DDK   (06.11.2005 в 12:00)   письмо автору
 
   для: codexomega   (06.11.2005 в 03:33)
 


document.forms.frm_register.submit(); 


можно опустить forms:


document.frm_register.submit(); 

   
 
 автор: codexomega   (06.11.2005 в 18:45)   письмо автору
 
   для: DDK   (06.11.2005 в 12:00)
 

Кроме формы на страницe был код PHP.
И я отправку формы проверял с его помощью.
Когда я протестировал чистый HTML, все сработало.
Буду искать ошибки в PHP.
Спасибо за помощь.

   
Rambler's Top100
вверх

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