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

HTML+CSS+JavaScript

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

 

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

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

тема: Валидация Е-майла
 
 автор: TetRiska   (20.02.2009 в 03:26)   письмо автору
 
 

Всем привет. Вот написал свой скриптик, но где-то в нем ошибка, помогите разобраться.

</script>
function AppendValidation(fieldid, containerid, minlength, maxlength, regularex, showtext2)
{
    var field        = document.getElementById(fieldid);
  var container2 = document.getElementById(containerid);
    var text       = document.createElement("div");
    
    if (showtext2 == null && showtext2 != false)
    container2.appendChild(text);
    text.innerHTML = "&nbsp;";
    
    field.onkeyup = function()
    {
         if (field.value.length == 0)
        {
            text.innerHTML = "&nbsp;";
            return;
        }
        
        if (minlength != null && field.value.length < minlength)
        {
            text.innerHTML = "Длина E-maila меньше допустимого";
            return;
        }
        
        if (regularex != null && field.value.match(regularex) == null)
        {
            text.innerHTML = "E-mail не соответствует формату";
            return;
        }
        
            text.innerHTML = "E-mail удовлетворяет всем условиям";
            return;
    }

</script>

Ниже код вставляю в хтмл форму:

<input size="31" maxlength="25" type="text" name="ma_il" id="ma_il" />
    <div id="STATUS"></div>
    <script type="text/javascript" language="Javascript">
    AppendValidationStandart("ma_il", "STATUS", 5, 100,"^(\\w+)@(\\w+)\\.(\\w+){2,3}$");
    </script>


Вот этот вариант скрипта рабочий, но я некак не могу заставить его чтобы при загрузке формы задавалось пустое поле в выводе статуса ошибки, делаю для того чтобы форма не прыгала при отображении текста.

<script>
function AppendValidation(fieldid, errorhndl, minlength, maxlength, regularex)
{
    var field = document.getElementById(fieldid);
    
    field.onkeyup = function()
    {
         if (field.value.length == 0)
        {
            errorhndl(fieldid, "NULL");
            return;
        }
        
        if (minlength != null && field.value.length < minlength)
        {
            errorhndl(fieldid, "OVERMIN");
            return;
        }
        
        if (regularex != null && field.value.match(regularex) == null)
        {
            errorhndl(fieldid, "NOTMATCH");
            return;
        }
        
        errorhndl(fieldid, "OK");
    }

function AppendValidationStandart(fieldid, statusid , minlength, maxlength, regularex)
{
    var errorhndl = function ErrorHandler(field, errorstate)
    {
    
    var status = document.getElementById(statusid);
    switch (errorstate)
    {
       case "NULL":
            status.innerHTML = "&nbsp;";
            break;
            
        case "OK":
            status.innerHTML = "E-mail удовлетворяет всем условиям";
            status.className = "pc-green";
            break;
        
        case "OVERMIN":
            status.innerHTML = "Длина E-maila меньше допустимого";
            status.className = "pc-critical";
            break;
        
        case "NOTMATCH":
            status.innerHTML = "E-mail не соответствует формату";
            status.className = "pc-critical";
            break;
    }
    }
    AppendValidation(fieldid, errorhndl, minlength, maxlength, regularex);

</script>

  Ответить  
 
 автор: PAT   (20.02.2009 в 03:49)   письмо автору
 
   для: TetRiska   (20.02.2009 в 03:26)
 

.match (/[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}/)

  Ответить  
 
 автор: TetRiska   (20.02.2009 в 04:28)   письмо автору
 
   для: PAT   (20.02.2009 в 03:49)
 

Не совсем понял :( То что Вы указали у меня верно и работает со скриптом, что нижний..Верхний сам писал, вот не пойму где допустил там ошибку.

  Ответить  
 
 автор: PAT   (20.02.2009 в 04:44)   письмо автору
 
   для: TetRiska   (20.02.2009 в 04:28)
 

Положим, что моё имя - Владимир.
Положим, я должен ввести его в какое-то поле.
Положим, я ошибся при вводе.
Положим, программа отследила эту ошибку.
Программа, полагаете, должна указать мне, как именно я извратил собственное имя? :-)

ИМХО, в любом случае вполне ДОСТАТОЧНЫМ будет указать, что введённый e-mail неверен - а далее пусть владелец этого e-mail'a САМ соображает - где именно он совершил ошибку.

А то получится, как здесь - http://www.metronews.ru/news3/zags_moskvy_ne_hochet_registrirovat_rebenka_pod_imenem_boch_rvf_260_602/ - напишет человек, что его зовут БОЧ РВФ 260602, а ваша программа "упрётся рогом" и давай ему объяснять, что цифр в человеческом имени быть не может. :-)

  Ответить  
 
 автор: TetRiska   (20.02.2009 в 04:53)   письмо автору
 
   для: PAT   (20.02.2009 в 04:44)
 

)) Но все же мне хотеться, чтобы ввод сопровождался несколькими подсказками! И при вводе программа проверяет правильность символов.

  Ответить  
 
 автор: PAT   (20.02.2009 в 07:04)   письмо автору
 
   для: TetRiska   (20.02.2009 в 04:53)
 

>"Но все же мне хотеться..."

Для вас русский язык неродной?

  Ответить  
 
 автор: TetRiska   (21.02.2009 в 01:35)   письмо автору
 
   для: PAT   (20.02.2009 в 07:04)
 

Зачем придираться к словам? Писал на скорую руку и в поздний час...Да не родной и что с этого?

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

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