| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Наши скрипты > Валидация элементов форм |
| Автор: Aliance 4.12.2004, 22:03 | ||
| Итак, выдалась минутка свободного времени, и я решил упростить многим жизнь и ответить на ЧаВо «Обычные проверки текста в форме». Есть (грубо говоря) 2 способа собственно самой проверки на JavaScript: с использованием регульрный выражений и без. Т.к. первый компактнее, актуальнее, экономичнее, разумнее и красивее - то я опишу именно его ;) Итак, сначало определимся какие проверки нам нужны:
ЗЫ: что бы пользователь не обошел проверку на локальной машине я всегда делаю так: Цитата Вместо <input type="submit" /> Пишу <input type="button" onclick="this.form.submit();" /> ... Пока что все, будет еще время - еще черкану :-) |
| Автор: Aliance 5.12.2004, 14:48 | ||
| Кстати, кому не нравиться, что валидация осуществляеться при срабатыании события onchange - можно сделать так: - убираем все события из элементов форм (валидационные события) - ставим в элементе form след.: onsubmit="return false;" - ставим вместо кнопки <input type="submit" /> это: <input type="button" onclick="if (validateForm(this.form)) {this.form.submit() };" /> - делаем функцию Validate():
Это исключит обход отключившего JS пользователя от проверки на стороне клиента :-) |
| Автор: Aliance 4.1.2005, 23:06 | ||
А тут я расскажу как осуществить валидацию первым способом (по средствам проверок):
|
| Автор: Sardar 5.1.2005, 00:32 | ||||
Немного перебрал
Это не JS А вообще не стоит вот так проверять |
| Автор: Aliance 6.1.2005, 22:32 | ||||||
Хм...
Имхо нужно так, дабы показываем что ПЕРВЫЙ символ проверяем.
В учебнике, по которому я учился написано, что можно так делать... Проверь код - должен работать.
Есесно, это прошлый век; но врдур кому нужно, я же не для себя пишу ))) |
| Автор: Sardar 6.1.2005, 22:59 | ||||||
Перечитай что ты сказал, затем строку кода, пока не поймёш в чём суть Для справки: String.charAt - взять символ по индексу, String.charCodeAt - взять код символа по индексу.
Левый учебник, не верь во всё слепо, проверяй код, не ленись |
| Автор: Guest 31.1.2005, 09:32 |
| Как сделать проверку на загружаемые файлы с формы, формата jpg, doc, zip,rar? |
| Автор: Sardar 31.1.2005, 21:55 | ||
| Проверку подобного рода на стороне клиента делают только для самого клиента, что бы страницу зря не перезагружал Проверяем просто регами по расширению:
Проверка на пустое поле для глючных браузеров, где запрещенно читать содержимое элементов input:file. Все современные браузер такой траблы не имеют, но мало ли что... |
| Автор: Guest 1.2.2005, 12:22 |
| При этом получается, что файл нужен обязательно, а на формат не реагирует. И пусть форма работает если нет файла, а если есть то проверка по формату. |
| Автор: Sardar 1.2.2005, 14:56 |
| Уважаемый Guest, два момента: во первых зарегистрируйтесь, всё же приятно общатся зная с кем во вторых высказывайте свои мысли чётко, я не понял пост выше это вопрос или утверждение? Я дал только пример на регах, вставь его в свой onsubmit и будет тебе счастье |
| Автор: Guest 1.2.2005, 15:33 |
| Хорошо на днях зарегистрируюсь! Форму вставил, но она у меня не работает. Если файл не отправлять то ошибка, а если отправлять, то отправляется файл с любым расширением. |
| Автор: Sardar 2.2.2005, 02:19 |
| Guest мы не телепаты, нужен код, иначе ничего сказать не могу Создавай новый топик, незачем этот продолжать. |
| Автор: Aliance 2.2.2005, 23:30 | ||||
Paint обычно сохранияет файлы в верхнем регистре, т.е. формат *.JPG не проходит по твоим регам...
|
| Автор: Aliance 8.3.2005, 23:12 | ||
Boolean возвращать нужно |
| Автор: Maxy 14.7.2005, 17:02 |
| А как осуществить проверку поля select? Подсажите, пожалуйста. Спасибо. |
| Автор: Aliance 14.7.2005, 18:33 | ||
|
| Автор: Гость_maxon 15.7.2005, 09:45 |
| Спасибо. |
| Автор: Aliance 15.8.2005, 20:32 | ||
Кстати, у input:file есть свойство accept, задающую строку, содержащую список MIME-типов (через запятую). |
| Автор: CyClon 28.3.2006, 16:04 | ||
ИМХО: С помощью JS обезопасить свой сайт не удасться. И вообще, такие проверки делаются (Я делаю) для того, чтобы юзер не гонял траффик и не перезагружал по 100 раз страницу. Проверку средствами PHP никто не отменял ;) |
| Автор: Aliance 28.3.2006, 19:25 |
| Это не делается с целью обезопастить. А в данном примере, с отключенным JS пользователь форму просто отправить не сможет. |
| Автор: CyClon 29.3.2006, 12:48 | ||
Вот и суть проблемы |
| Автор: alfemy 17.1.2008, 17:23 |
| Да, в идеале бы сделать так, чтобы при включенном JS форма проверялась на строне клиента, а если не включен JS - то форма все равно бы отправлялась, и проверялась средствами PHP |
| Автор: Peremordit 28.1.2008, 12:45 | ||||
| Моя реализация проверок в поля формы добавить дополнительные атрибуты - например, regvalue="true/false" (флаг обязательности к заполнению) и fieldtype = "email/date/latChar & etc." ("тип" поля) сделать внешний файл с набором проверок
здесь InputFilterRX - регэксп для onkeypress (отсеять "левые" символы) InputCheckValueRX - регэксп для "начальной" проверки (onblur поля и сабмит формы) addPr - "дополнительная" проверка (ели не нужна - то просто true) err - сообщение об ошибке Пример дополнительной проверки
по сабмиту формы - пробежать по форме, собрать "обязательные" элементы, проверить обязательные поля Если надо - выложу пример |