Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи мови JavaScript.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.04 Mб
Скачать

3. Робота з формами

Сценарії JavaScript часто застосовуються для попереднього опрацювання даними, уведених користувачами у формах. Перевірені дані потім можуть передаватися розширенням CGI або ISAPI серверу Web. Крім того, за допомогою форм і сценаріїв JavaScript можна створювати активні сторінки, спроможні одержувати від користувача й опрацьовувати довільну інформацію.

Раніше рассказывалось про деякі прийоми, за допомогою яких сценарії можуть витягати дані з форм, а також опрацьовувати події, пов'язані з органами керування, розташованими у формах. Тепер необхідно більш детальне вивчення взаємодії форм і сценаріїв JavaScript.

3.1. Ієрархія об'єктів у формах

При завантаженні документа HTML у вікно браузера Internet створюється об'єкт класу document. Якщо в цьому документі визначені форми, то вони доступні сценаріям JavaScript як властивості об'єкта document.

У поділі "Посилання і мітки в документі" попередньої глави була визначена форма, через завдання для неї імені Sel за допомогою параметра NAME оператора <FORM>:

<FORM NAME="Sel">

<SELECT NAME="ListOfLinks">

</SELECT>

<INPUT TYPE="button" VALUE="Jump! " onClick="urlJump();">

</FORM>

У результаті в об'єкта document з'явилася властивість Sel. До цієї властивості можна адресуватися в такий спосіб:

Document. Sel

Будь-яка форма містить визначення полів і органів керування, таких, як списки, перемикачі і кнопки. При визначенні полів і органів керування їм можна задати ім'я, указавши його в параметрі NAME відповідного оператора мови HTML. У прикладі, приведеному вище, у формі визначений список з ім'ям ListOfLinks.

Для адресации зі сценарію JavaScript окремих органів керування можна скористатися тим фактом, що вони доступні як властивості їхніх форм , що містять. Наприклад, якщо у формі Sel визначений список ListOfLinks, те для доступу до списку як до об'єкта можна використовувати таке вираження:

Document. Sel. ListOfLinks

Тому що поля форми й органи керування є об'єктами, то для них визначені свої властивості і методи. Наприклад, властивість selectedIndex, що містить номер обраного користувачем елемента списку, доступно в такий спосіб:

Document. Sel. ListOfLinks. selectedIndex

У якості одного з властивостей об'єкта document визначена властивість forms. Це масив усіх форм, розташованих у документі HTML. Розмір масиву дорівнює document.forms.length.

Можливо адресуватися до форм як до елементів масиву forms, причому, перший елемент масиву (з індексом 0) відповідає самій першій формі, визначеної в документі, другий - такої і т.д. Проте зручніше обертатися до форм по їхніх іменах, заданим у параметрі NAME оператора <FORMS>.

3.2. Форма і її властивості

3.2.1. Оператор <FORM>

У найбільше загальному виді оператор <FORM>, призначений для створення форм у документах HTML, виглядає в такий спосіб:

<FORM

NAME ="Ім'я_форми" TARGET="Ім'я_окнa"

ACTION="Aдpec URL розширення серверу"

METHOD=GET або POST

ЕNСТУРЕ="Кодировка_даних"

onSubmit="О6pa6oтчик_co6ытия_Submit">

...

визначення полів і органів керування

...

</FORM>

Параметр NAME задає ім'я форми. Можна його не вказувати, якщо форма не призначена для спільної роботи зі сценарієм JavaScript. Тут (у главі) це ім'я потрібно для адресации форми як властивості об'єкта document, тому завжди будемо його задавати.

Призначення параметра TARGET аналогічно призначенню цього ж параметра в операторі <А>. Коли форма використовується для передачі запиту розширенню CGI або ISAPI серверу Web, відповідь, отриманий від серверу, відображається у вікні. Ім'я цього вікна задано параметром TARGET. Якщо відповідь повинна відображатися в тому ж вікні, у якому відображається і форма, то параметр TARGET задавати не потрібно.

За допомогою параметра ACTION вказується адреса URL завантажувального файла програми CGI або бібліотеки динамічного компонування DLL розширення ISAPI, а також передані розширенню параметри. У тому випадку, коли форма призначена для передачі даних розширенню серверу Web, параметр ACTION є обов'язковим. Але якщо дані, введені у формі, опрацьовуються сценарієм JavaScript локально і не передаються серверу Web, цей параметр можна опустити.

Параметр METHOD задає метод передачі даних із форми розширенню серверу Web і може приймати значення GET або POST. Якщо дані з полів форми опрацьовуються сценарієм JavaScript локально, параметр METHOD задавати не потрібно.

Параметр ENCTYPE задає тип MIME переданих даних і використовується дуже рідко. Якщо форма призначена для передачі текстових даних (як це звичайно буває), цей параметр по умовчанню має значення application/x-www-form-urlencoded. У цьому випадку для переданих даних використовується так називана кодировка URL. Тип даних multi-part/form-data дозволяє передавати як текстові, так і двоичные дані. При локальному опрацюванні даних сценарієм JavaScript параметр ENCTYPE не задається.

Крім параметрів для форми можна визначити оброблювач події, пов'язаний із кнопкою типу SUBMIT. Така кнопка призначена для посилки даних із заповненої форми розширенню серверу Web. Назначив оброблювач події, сценарій JavaScript може управляти цим процесом.