[Iws] Диалоговые окна - lesson 03


Диалоговые окна. Валидация формы. Блок валидации текстовых полей. Блок валидации image. Блок капча.

1. Валидация формы. См.  Диалоговые окна - lesson 02. Диалоговые окна. Подходы к созданию и отладке проекта. Бланк формы. Файл параметров формы. Отладка в Chrome. Итак, у нас есть форма на экран и ее нужно заставить работать для этого нужно организовать: валидацию ввода пользователя: проверяющую ввод в поля формы «на лету», то есть при каждом изменении в поле; проверяющую содержимое поля формы при потере полем фокуса, т.е. когда пользователь переходит к следующему полю; проверить полноту заполнения полей формы и вкл/выкл кнопку "ОК"; проверяющую корректность ввода картинки, вообще-то вместо картинки можно «подсунуть» и вредоносный код; работу капчи, для защиты от «спамеров»; исключить повторение имени пользователя в базе данных (например, при регистрации); отработку нажатия на кнопки управления формой: «Ок» и «Cancel»; передачу и обработку данных введенных пользователем; сообщение на экран по результатам ввода в форму (обратная связь); 2. Создадим блок валидации текстовых полей. Начало блока обозначим - /* === start ВАЛИДАЦИЯ ТЕКСТОВЫХ ПОЛЕЙ ФОРМЫ === */ Конец блока обозначим - /* === end ВАЛИДАЦИЯ ТЕКСТОВЫХ ПОЛЕЙ ФОРМЫ === */ Функции управления валидацией текстовых полей: Определили глобальную переменную «_field_check» накапливает в массиве поля по мере заполнения, поле заполнено 1, не заполнено 0; После загрузки страницы создаем функцию управления: Перехватываем события изменения полей форм: Изменение и потерю фокуса: валидация img - вызывает функцию validation_img(e.target); валидация текстовых полей при изменении - вызывает функцию validation_fields(ev); валидация полей при потере фокуса - вызывает функцию validation_fields(ev); проверить полноту и вкл/выкл кнопку "ОК" по клику мыши - вызывает функцию check_complit_form(); проверить полноту и вкл/выкл кнопку "ОК" по нажатию кнопки - вызывает функцию check_complit_form(); Создаем капчу – функция create_sum(); Перехватываем нажатие кнопки обновление капчи; Функция validation_fields(ev) - валидация текстовых полей; Функция check_complit_form() - проверить полноту и вкл/выкл кнопку "ОК"; Вспомогательные функции: установить позицию сообщения; отобразить сообщение при ошибке; очистить ошибку и отобразить "Галочку" – поле валидно; включить/выключить кнопку "Ok"; Блок функций для валидации каждого типа поля: поле «Имя», поле «Email» и тд: Начало блока /* start блок функций валидации */ конец блока /* end блок функций валидации */ назначение понятно из названия функции. Для тестирования можно включить все поля в объекте «fld_display_form» в файле «_user_reg_param». После вставки блока должны работать все поля кроме не текстовых: поля ввода image и поля капча; Давайте рассмотрим картинку на ней screen отладчика Chrome: поле «Телефон» со всплывающей ошибкой «…недопустимые символы» (знак «=»); поле «Выбор» с ошибкой «надо выбрать» (в самом поле); при выборе image ничего не происходит (нет блока валидации image); капча не отображается? В консоли есть ошибки и предупреждения: предупреждение - «create_sum is not defined» - функция не определена; и такая же ошибка - «create_sum is not defined» - функция не определена; Поле ввода image ошибку не выдает – откуда программе знать, что мы хотим? Можно выбрать image, но дальше ничего не происходит! 3. Создадим блок валидации image. Начало блока обозначим - /* === start ВАЛИДАЦИЯ IMAGE === */ Конец блока обозначим -/* === end ВАЛИДАЦИЯ IMAGE === */ Если изображение валидное – отображается иконка, размер и тип файла; Функции управления валидацией image: Функция input_img_val(el) - валидация введенного изображения с отображением; Вспомогательные функции: verifyFileSize - проверка размера файла; verifyTypeHeader - проверка типа файла; showFile - отобразить image в иконке; show_blank_icon - показать бланк в иконке. Подробности см. в комментариях файла библиотеки. После вставки этого блока вставка image должна работать! 4. Создадим блок капча. Начало блока обозначим - /* === start CAPTCHA === */ Конец блока обозначим - /* === end CAPTCHA === */ Функции управления капчей: Функция create_sum - создать капчу; Вспомогательные функции: set_expression - создать случайное выражение; create_text - создать картинку с текстом капчи; create_fon - создать фон капчи; randomIntegerг - енератор ЦЕЛЫХ случайных чисел в интервале min, max; randomFloat - генератор ДРОБНЫХ случайных чисел в интервале min, max Если капча не «читабельна ее можно обновить нажатием кнопки «Обновить». При создании капчи я использовал только операции «+» и «х», т.к. они проще для устных вычислений. Минимальное и максимальное значения слагаемых или множителей можно выбрать в параметрах капчи в файле параметров. Кроме этого можно установить и другие параметры капчи влияющие на размер и читабельность капчи. Подробности см. в комментариях файла библиотеки и файла параметров. После ввода блока «Капча» форма работает полностью! Теперь надо передать данные формы в сохранения в базе и для использования в программе! Это мы сделаем на следующем уроке. Скачать проект текущего урока