![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Итак, выдалась минутка свободного времени, и я решил упростить многим жизнь и ответить на ЧаВо «Обычные проверки текста в форме».
Есть (грубо говоря) 2 способа собственно самой проверки на JavaScript: с использованием регульрный выражений и без. Т.к. первый компактнее, актуальнее, экономичнее, разумнее и красивее - то я опишу именно его ;) Итак, сначало определимся какие проверки нам нужны:
ЗЫ: что бы пользователь не обошел проверку на локальной машине я всегда делаю так: Цитата Вместо <input type="submit" /> Пишу <input type="button" onclick="this.form.submit();" /> ... Пока что все, будет еще время - еще черкану :-) ![]() Это сообщение отредактировал(а) Aliance - 4.1.2005, 23:07 |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Кстати, кому не нравиться, что валидация осуществляеться при срабатыании события onchange - можно сделать так:
- убираем все события из элементов форм (валидационные события) - ставим в элементе form след.: onsubmit="return false;" - ставим вместо кнопки <input type="submit" /> это: <input type="button" onclick="if (validateForm(this.form)) {this.form.submit() };" /> - делаем функцию Validate():
Это исключит обход отключившего JS пользователя от проверки на стороне клиента :-) ![]() Это сообщение отредактировал(а) Aliance - 22.5.2005, 16:49 |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
А тут я расскажу как осуществить валидацию первым способом (по средствам проверок):
|
|||
|
||||
Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Немного перебрал ![]()
Это не JS ![]() А вообще не стоит вот так проверять ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
Aliance |
|
||||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Хм...
Имхо нужно так, дабы показываем что ПЕРВЫЙ символ проверяем.
В учебнике, по которому я учился написано, что можно так делать... Проверь код - должен работать.
Есесно, это прошлый век; но врдур кому нужно, я же не для себя пишу ))) |
||||||
|
|||||||
Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Перечитай что ты сказал, затем строку кода, пока не поймёш в чём суть ![]() Для справки: String.charAt - взять символ по индексу, String.charCodeAt - взять код символа по индексу.
Левый учебник, не верь во всё слепо, проверяй код, не ленись ![]() ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
Guest |
|
|||
Unregistered |
Как сделать проверку на загружаемые файлы с формы, формата jpg, doc, zip,rar?
|
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Проверку подобного рода на стороне клиента делают только для самого клиента, что бы страницу зря не перезагружал
![]() Проверяем просто регами по расширению:
Проверка на пустое поле для глючных браузеров, где запрещенно читать содержимое элементов input:file. Все современные браузер такой траблы не имеют, но мало ли что... ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Guest |
|
|||
Unregistered |
При этом получается, что файл нужен обязательно, а на формат не реагирует. И пусть форма работает если нет файла, а если есть то проверка по формату.
|
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Уважаемый Guest, два момента:
во первых зарегистрируйтесь, всё же приятно общатся зная с кем ![]() во вторых высказывайте свои мысли чётко, я не понял пост выше это вопрос или утверждение? Я дал только пример на регах, вставь его в свой onsubmit и будет тебе счастье ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Guest |
|
|||
Unregistered |
Хорошо на днях зарегистрируюсь!
Форму вставил, но она у меня не работает. Если файл не отправлять то ошибка, а если отправлять, то отправляется файл с любым расширением. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 16 Всего: 317 |
Guest мы не телепаты, нужен код, иначе ничего сказать не могу
![]() Создавай новый топик, незачем этот продолжать. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Paint обычно сохранияет файлы в верхнем регистре, т.е. формат *.JPG не проходит по твоим регам...
|
||||
|
|||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Boolean возвращать нужно ![]() |
|||
|
||||
Maxy |
|
|||
Unregistered |
А как осуществить проверку поля select? Подсажите, пожалуйста.
Спасибо. |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
|
|||
|
||||
Гость_maxon |
|
|||
Unregistered |
Спасибо.
|
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Кстати, у input:file есть свойство accept, задающую строку, содержащую список MIME-типов (через запятую). |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
ИМХО: С помощью JS обезопасить свой сайт не удасться. И вообще, такие проверки делаются (Я делаю) для того, чтобы юзер не гонял траффик и не перезагружал по 100 раз страницу. Проверку средствами PHP никто не отменял ;) |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 6 Всего: 137 |
Это не делается с целью обезопастить.
А в данном примере, с отключенным JS пользователь форму просто отправить не сможет. |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Вот и суть проблемы ![]() ![]() |
|||
|
||||
alfemy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.12.2007 Репутация: нет Всего: нет |
Да, в идеале бы сделать так, чтобы при включенном JS форма проверялась на строне клиента, а если не включен JS - то форма все равно бы отправлялась, и проверялась средствами PHP
|
|||
|
||||
Peremordit |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 28.1.2008 Репутация: нет Всего: нет |
Моя реализация проверок
в поля формы добавить дополнительные атрибуты - например, regvalue="true/false" (флаг обязательности к заполнению) и fieldtype = "email/date/latChar & etc." ("тип" поля) сделать внешний файл с набором проверок
здесь InputFilterRX - регэксп для onkeypress (отсеять "левые" символы) InputCheckValueRX - регэксп для "начальной" проверки (onblur поля и сабмит формы) addPr - "дополнительная" проверка (ели не нужна - то просто true) err - сообщение об ошибке Пример дополнительной проверки
по сабмиту формы - пробежать по форме, собрать "обязательные" элементы, проверить обязательные поля Если надо - выложу пример |
||||
|
|||||
![]() ![]() ![]() |
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |