И самая мякотка - вы на сервере вообще не проверяете? Собственно если форма не работает по XMLHttp, то и проверять на JS особенно нечего - ушла пустая, с сервера строго сказали - тут не заполнено мать вашу.
|
Цитата:
Естественно проверяю на сервере. Да дело не в ТЗ. Там все просто: 1. В спокойном незаполненном состоянии поля не подкрашиваются, кнопка неактивна. 2. При фокусе поле красное (рамка), кнопка неактивна. 3. Начали писать — рамка зеленая, кнопка неактивна. 4. Все заполнили — соответственно обе рамки зеленых, кнопка стала активной и при нажатии отправляет форму. |
|
Цитата:
Все что требуется заполнить -- выделяется _сразу_ чтоб было понятно что надо заполнить. Вы где такой морально-уродский скрипт подцепили? Почему не отправляет - это вы сами ищите. На сабмите там никаких вообще перехватов, если кнопка активна - то уйдет. Сделайте ее по умолчанию активной и нажимайте как будто все заполнили. Что касается фильтров телефонов и имен - нафиг там какие-то скрипты еще? Той же самой функцией все, одной, проверяется. Надо только добавить еще одно условие - чтоб регулярное выражение возвращало true, а сам паттерн берется из атрибута pattern. Например для проверки на длину pattern="{3,}" - не менее 3 символов, pattern="{10,11}" от10 до 11. Есть специальный сайт где коллекционируют эти паттерны. http://html5pattern.com/ Это не значит что только HTML5 браузер поймет - любой, надо только брать var pat = new RegExp(field.getAttibute('pattern')) |
Цитата:
Знаете как это лечится? Берется такой программист и сажается набивать БД через свой собственный зло...учий интерфейс. Через неделю он все перепишет по-человечески. А пока одни пишут, другие юзают - гавно и случается. |
С паттернами http://learn.javascript.ru/play/IjR4h
Но там с телефонами я не знаю как вам надо, взял типовой шаблон 123-456-7898 Насчет выдележа рамочками. Конечно не обязательно именно рамочками выделять, звезды можете просто поставить. А чтоб при запуске функция дизаблила, но не разукрашивала (если этого не надо, если есть звезды), то просто проверяйте кто ее вызвал: if(event.target) // это значит по событию, а иначе значит из кода вызвана. И надо туда добавить этот event в () |
Не все так просто. Общим чохом все сводится в одну функцию, а чтобы по-отдельности проверять надо 2 и брать из ивента элемент, фиксировать где-то ошибку, затем мониторить ошибки собирая этот dis &= error и тп. Короче усложнение, предлагаю оставить чохом, или искать нормальный скрипт. Свой не дам.
|
Часовой пояс GMT +3, время: 18:20. |