Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Процедура отправки формы на обработку. Событие submit

Читайте также:
  1. I. Различия формы
  2. III. Формы земной поверхности — беседа
  3. IV. 14.5. Формы переживания чувств
  4. IV. ТРИ ФОРМЫ МИРА
  5. IV. ФОРМЫ ПРОМЕЖУТОЧНОГО И ИТОГОВОГО КОНТРОЛЯ
  6. VII. Активные формы и методы обучения
  7. Where to submit?

После ввода информации, чтобы начать обработку формы, пользователь нажимает соответствующую кнопку. Эта операция известна как submit, что в буквальном переводе означает "представить на рассмотрение". При её выполнении активизируется передача информации из формы обрабатывающей программе.

Основные задачи браузеров — отсылка запросов, получение ответов на них и отображение содержания ответов. Поэтому передача информации на обработку означает, что браузер делает запрос по некоторому адресу (URL) и снабжает этот запрос информацией из формы. Результатом обработки формы будет некоторая веб-страница, URL которой задается в атрибуте action тега <form>. При получении ответа браузер загружает страницу, замещая страницу с формой.

Когда атрибут action отсутствует, то по умолчанию обработчиком становится текущая страница, которая будет загружена браузером заново, а, значит, форма появится в начальном виде. Признак того, что показана перезагруженная страница, — в адресной строке браузера к URL добавляется знак вопроса и некоторая информация (это называется строкой запроса).

Но ещё до отправки нужно выполнить проверку правильности заполнения формы. Эта проверка должна произойти в период после нажатия кнопки, но до отправки запроса. Т.е. нужно каким-то образом "вклиниться" между этими двумя действиями. Это реализуется средствами событийной архитектуры.

Реально происходит следующее. Когда пользователь нажал кнопку типа submit, генерируется одноименное событие submit.

Появление события вызывает следующее действие операционной среды — поиск программы-обработчика. Простейший способ задать такой обработчик — добавить в тег формы атрибут on submit (что переводится как "в случае события submit"). Значением атрибута — строка со взятым в кавычки программным кодом, выполняющим обработку. Код может содержать, например, вызовы ранее определенных функций и другие операторы.

По результатам выполненной проверки должно быть принято решение о дальнейших действиях. Если ошибок в заполнении формы не обнаружено, то информация из формы передается на обработку по указанному в URL. Если ошибки есть, то нужно сообщить об этом пользователю и отменить отправку.

Реализация этого выбора основана на стандартном поведении элемента формы. Если программный код обработчика события submit явным образом возвращает false, то это воспринимается как отмена действия атрибута action, т.е. форма не отсылается.

Во всех остальных случаях (включая возврат нуля, пустой строки или даже отсутствие оператора возврата), считается, что обработчик возвращает true, и дается разрешение на отправку.

Пример. Если функция ok() возвращает 1 (успех) или 0 (есть ошибки), то в определении формы можно использовать следующий код

<form action="какой-то URL"

onsubmit="if(ok())return true; else return false;">

...</form>

Обработка может потребовать объемного кода. Чтобы значение атрибута-обработчика не было громоздким, удобно код с проверкой выделить в отдельную функцию, возвращающую true или false. А описание этой функции поместить в тег <script> заголовочной части документа. Тогда, если функция названа check, то её использование будет выглядеть следующим образом:

<form name="task1" onsubmit="return check();" >...</form>

В лабораторной работе используется упрощенный синтаксис задания функций-обработчиков. Интерпретируя его, браузер помещает код, находящийся в кавычках, в анонимную функцию, и управление дальнейшими действиями браузера зависит от возвращаемого значения именно этой анонимной функции. Без явного оператора возврата анонимная функция не будет ничего возвращать (нет оператора возврата) — function(){check();}. Отсутствие возвращаемого значения по умолчанию будет трактоваться, как true, т.е. независимо от результатов проверки, данные всегда будут отсылаться по адресу, указанному в action.


Дата добавления: 2015-07-26; просмотров: 67 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ЛАБОРАТОРНАЯ РАБОТА| Использование гиперссылок для выполнения программного кода

mybiblioteka.su - 2015-2024 год. (0.007 сек.)