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

HTML+CSS+JavaScript

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

 

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

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

тема: Грамотная валидация формы
 
 автор: seniormelikyan   (01.08.2013 в 13:29)   письмо автору
 
 

Люди, помогите, пожалуйста... Никак не могу реализовать нормальную валидацию формы. Есть 4 поля: "Имя", "E-mail", "Тема", "Сообщение". Как реализовать проверку на их заполнение, чтобы выводилось сообщение о том, какие(-ое) поля(-е) не заполнены(-о) вообще, а какие(-ое) - не соответствуют(-ет) регулярным(-ому) выражениям(-ю)?

Регулярные выражения для полей имеются:

1: /^[А-Яа-яЁё]+$/ - "Имя" - одно слово на русском в любом регистре
2: <input type="email"> - "E-mail" - подскажите, пожалуйста, если есть что-то лучше
3, 4: /^[А-Яа-яЁё\W\s\d]+$/ - "Тема", "Сообщение" - все, что угодно, но только на русском

  Ответить  
 
 автор: confirm   (01.08.2013 в 13:42)   письмо автору
 
   для: seniormelikyan   (01.08.2013 в 13:29)
 

W - шаблон описывающий и латинские символы, чего же вы его воткнули, если только на русском?

Если поле формы имеет атрибут pattern, то при попытке заполнения и отправки формы с полями несоответствующими им браузер и выведет соответствующее предупреждение у поля формы. Вроде бы как только старый Опера "смолчит", хотя форму не отправит.

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

  Ответить  
 
 автор: seniormelikyan   (01.08.2013 в 15:29)   письмо автору
 
   для: confirm   (01.08.2013 в 13:42)
 

http://regexpr.ru/?pattern=%2F%5CW%2F&subject=ABCD%0D%0A%C0%C1%C2%C3

  Ответить  
 
 автор: seniormelikyan   (01.08.2013 в 17:19)   письмо автору
 
   для: confirm   (01.08.2013 в 13:42)
 

Мне бы на Javascript желательно, а не на новых атрибутах HTML5.

  Ответить  
 
 автор: confirm   (01.08.2013 в 18:05)   письмо автору
 
   для: seniormelikyan   (01.08.2013 в 17:19)
 

А может лучше заставлять пользователя использовать новые браузеры, а не дряхлых предков?
Проверка на клиенте, это всего лишь сервис, и средства HTML5 обеспечивают его без лишних затрат. А вот действительная проверка должна осуществляться на сервере. Вывод ошибок при этом зависит от того как осуществляется диалог - ajax или стандартным способом.

Ну если хочется на JS, то берите свои шаблоны и http://javascript.ru/RegExp/test по событию отправки формы проверяйте. Указать в каком именно поле ошибка - если проверка формы при отправке, значит это перебор элементов формы в цикле, а значит всегда знаем текущий элемент формы, если проверка во время ввода, то тем более знаем текущий элемент.

Как вывести ошибку - можно изменить стиль элемента (CSS3 это делает просто), либо добавить слой к элементу в котором и вывести сообщение (так как это делают браузеры в HTML5). Вариантов может быть много.

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

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