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

HTML+CSS+JavaScript

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

 

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

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

тема: проверка полей
 
 автор: moonfox   (26.07.2009 в 22:24)   письмо автору
 
 

помогите плиз

на форме могут быть либо textfield либо radio
как проверить введен ли текст в поле или отмечен ли радио?
в противном случае не обрабатывать форму и выдавать алерт

  Ответить  
 
 автор: PAT   (27.07.2009 в 03:46)   письмо автору
 
   для: moonfox   (26.07.2009 в 22:24)
 

Вопрос этот задавался здесь ДЕСЯТКИ и СОТНИ раз.
Воспользуйтесь поиском.

-----
Модератору.
Неужели Вам платят с количества тем? :-))
Вы только скажите!
Я тогда из уважения к Вам буду здесь ежедневно задавать по 20-30 вопросов.
И сам же на них буду отвечать.

  Ответить  
 
 автор: moonfox   (27.07.2009 в 04:19)   письмо автору
 
   для: PAT   (27.07.2009 в 03:46)
 

я бы не спрашивал
если бы поиск дал бы ответ.

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

  Ответить  
 
 автор: PAT   (27.07.2009 в 14:40)   письмо автору
 
   для: moonfox   (27.07.2009 в 04:19)
 

Ну да... грамотно пользоваться поиском -это искусство.
Доступное не всем :-)
-----

Имеющиеся поля формы, а именно:
1. инпуты ЛЮБОГО типа и в ЛЮБОМ количестве - от нуля и до бесконечности
2. текстареа в ЛЮБОМ количестве - от нуля и до бесконечности
3. селекты в ЛЮБОМ количестве - от нуля и до бесконечности
4. теги <BUTTON></BUTTON> в ЛЮБОМ количестве - от нуля и до бесконечности

Так вот, они ВСЕ ВМЕСТЕ составляют коллекцию elements формы.

Сколько полей в форме - столько и членов в массиве elements формы (и такова длина этого массива length).
Самый первый член этого массива имеет индекс [0], самый последний имеет индекс [length - 1].
Будет, например, у вас в форме один текстовый инпут, одно текстареа, два радиоинпута, один селект и один инпут type="submit"- значит, в коллекции elements вашей формы будет 6 (шесть) членов.
Индексы их начинаются с нуля (как я уже написал выше) и будут соответствовать ПОРЯДКУ ПОЯВЛЕНИЯ этих полей в HTML-коде формы. Если первым после тега <FORM> будет <INPUT TYPE="text">, значит именно это поле будет иметь индекс [0]. А текстареа будет иметь индекс [1], если именно оно будет написано вслед за тестовым инпутом...

Задача проверки решается поэтому просто. Перед сабмитом формы надо проверить ВСЕ элементы формы (через описанную выше коллекцию). Вполне просто можно узнать скриптом type, name, id, className и вообще значения ЛЮБЫХ свойств и атрибутов этого элемента:
document.forms ['имя_формы'].elements [индекс_в_коллекции].type 
или
document.forms ['имя_формы'].elements [индекс_в_коллекции].name 
или
document.forms ['имя_формы'].elements [индекс_в_коллекции].id 
или
document.forms ['имя_формы'].elements [индекс_в_коллекции].className 
или
...
И для поля конкретного типа (имени, идентификатора, класса...) нужно проверить значение его value:
document.forms ['имя_формы'].elements [индекс_в_коллекции].value

Если значение поля будет соответствовать тем критериям, кое вы САМИ установили для этого типа (имени, идентификатора, класса...), то идёте проверять СЛЕДУЮЩИЙ элемент коллекции. Ежели не соответствует - выбрасываете юзеру предупреждение об ошибке.


PS. Очень надеюсь, что прочитаете и "въедете".
Надеюсь, что вы не из категории, для которых "понимать не надо, потому что не хочется, а нужен КОНКРЕТНЫЙ скрипт под КОНКРЕТНУЮ задачу" :-))

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

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