ФорумПрограммированиеJavaScript → Проверка формы

Проверка формы

  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 12:09 п.п.

    Привет парни

    проблема ламерская, но мозг никак не может ее решить!

    Итак, есть поля

    <label for="Name">Full Name</label><input id="Name" onKeyUp="keyUpChange(this);" type="text" />
    <label for="Phone">Phone</label><input id="Phone" onKeyUp="keyUpChange(this);" type="text" />
    <label for=Date">Today's Date</label><input id="Date" onKeyUp="keyUpChange(this);" type="text" />      
    // Ну и тут еще есть кнопка


    на нажатие кнопки вызывается функа.

    function Bugaga(){
    //на самом деле полей гораздо больше и я создал массив с ID этих полей!
    var FieldID = ['Name', 'Phone', 'Date', 'Address', 'City', 'State', 'Zip', 'CompanyName', 'Policy', 'PolicyType', 'Term', 'StartDate'];
    for (ii=0;ii<=FieldID.length;ii++){
       if(document.getElementById(FieldID[ii]).value == "") {
           document.getElementById(FieldID[ii]).style.borderColor='red';
       }
    }
    }


    так вот… функа проверяет поля и если они пустые она делает бордер красным. но если все поля заполнены мне надо чтобы она return true и там дальше будут происходить события.

    куда я только ето ретурн тру не пихал, что я тут только не писал. не работает не фига.

    не кляните за говнокод ибо слаб я в JS


  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 20, 2010, 12:12 п.п., спустя 2 минуты 52 секунды

    ибо слаб я в JS

    подзреваю что и в ксс :-)

    ocument.getElementById(FieldID[ii]).style.borderColor='red';


    это только установит цвет, но не бордер, вот так бордер.

    ocument.getElementById(FieldID[ii]).style.borderColor='1px solid red';
    Спустя 32 сек.
    for=Date">

    во вторых ты пропустил кавычку, в коде ли - я хуй знаю, но на пыхе да.
    Сапожник без сапог
  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 12:16 п.п., спустя 3 минуты 50 секунд

    и в css я тоже слаб, о учитель!
    насчет цвета - именно его и надо заменить!
    кавычку добавил, но не в этом проблема ибо label никакой роли не играет!
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 20, 2010, 12:19 п.п., спустя 3 минуты 14 секунд

    и в css я тоже слаб, о учитель!
    насчет цвета - именно его и надо заменить!

    и я глуп туп и нем, забыл убрать слово =)

    document.getElementById(FieldID[ii]).style.borderColor='1px solid red';


    надо

    document.getElementById(FieldID[ii]).style.border='1px solid red';
    Сапожник без сапог
  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 12:21 п.п., спустя 2 минуты 7 секунд

    щас код перепроверю! может еще где кавычку упустил!
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz Дек. 20, 2010, 12:34 п.п., спустя 12 минут 36 секунд


    щас код перепроверю! может еще где кавычку упустил!


    alert - ами отлавливай что тебе надо. А вообще firebug рулит, ну или на крайний - в FireFox ctrl+shift+j смотреть ошибки какие.
  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 12:35 п.п., спустя 1 минуту 8 секунд

    алертами и пробовал. чето намаялся я уже жутко. пойду убьюсь об стенку.
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz Дек. 20, 2010, 12:37 п.п., спустя 1 минуту 41 секунду

    надо чтобы она return true




    function Bugaga(){
    //на самом деле полей гораздо больше и я создал массив с ID этих полей!
    var FieldID = ['Name', 'Phone', 'Date', 'Address', 'City', 'State', 'Zip', 'CompanyName', 'Policy', 'PolicyType', 'Term', 'StartDate'];
    var Err = 0;
    for (ii=0;ii<=FieldID.length;ii++){
       if(document.getElementById(FieldID[ii]).value == "") {
           document.getElementById(FieldID[ii]).style.borderColor='red';
           Err++;
       }
    }

    if (Err) return false;

    return true;
    }

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Дек. 20, 2010, 12:45 п.п., спустя 8 минут 13 секунд

    alert - ами отлавливай что тебе надо. А вообще firebug рулит

    уж если ты файрбаг используешь, то есть console.log
  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 12:48 п.п., спустя 2 минуты 50 секунд

    andipas, спасибо, но не пашет!
    Спустя 83 сек.
    после того как заполнил и нажал кнопку фаербаг ругается:
    document.getElementById(FieldID[ii]) is null
    [Break on this error] if(document.getElementById(FieldID[ii]).value == "") {
    Спустя 49 сек.

    alert - ами отлавливай что тебе надо. А вообще firebug рулит

    уж если ты файрбаг используешь, то есть console.log


    спасибо! незнал что такое есть!
  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 12:59 п.п., спустя 11 минут 35 секунд

    заработало! хвала всем! хвала пыхе!
    было:

    for (ii=0;ii<=FieldID.length;ii++)

    надо:

    ii<FieldID.length

    а я олень ставил <= и скрипт пытался проверить еще одно поле!
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz Дек. 20, 2010, 1:51 п.п., спустя 51 минуту 23 секунды

    пиздец. JS конечно нужно знать для нейтива, но вот это
    (ii=0;ii<=FieldID.length;ii++)

    в jQuery
    $(selector).each
  • sen4ik

    Сообщения: 217 Репутация: N Группа: Адекваты

    Spritz Дек. 20, 2010, 1:53 п.п., спустя 2 минуты 27 секунд

    Faster, я понял!
    ушел грызть jQuery.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!