Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

В броузерах, поддерживающих

querySelectorAll,
можно выбрать все радиокнопки или все элементы с одинаковыми именами, присутствующие в форме, как показано ниже:

// Все радиокнопки в форме с атрибутом id=”shipping"

document.querySelectorAll('«shipping input[type="radio"]');

// Все радиокнопки с атрибутом name="method" в форме с атрибутом id="shipping"

document.querySelectorAll('«shipping input[type="radio"][name="method"]');

Однако, как описывалось в разделах 14.7,15.2.2 и 15.2.3, элемент

<form>
с установленным атрибутом
name
или
id
можно также выбрать другими способами. Элемент
<form>
с атрибутом
name="address"
можно выбрать любым из следующих способов:

window.address // Ненадежный: старайтесь не использовать

document.address // Может применяться только к формам с атрибутом name

document.forms.address // Явное обращение к форме с атрибутом name или id

document.forms[n] // Ненадежный: n - порядковый номер формы

В разделе 15.2.3 говорилось, что свойство

document.forms
ссылается на объект
HTMLCollection
, позволяющий выбирать элементы
<form>
по их порядковым номерам, по значению атрибута
id
или
name
. Объекты
Form
сами по себе действуют подобно объектам
HTMLCollection
, хранящим элементы форм, и могут индексироваться именами или числами. Если первый элемент формы с атрибутом
name="address"
имеет атрибут
name="street”
, на него можно сослаться с помощью любого из следующих выражений:

document.forms.address[0]

document.forms.address.street

document.address.street // только для name="address", но не id=”address”

Если необходимо явно указать, что выполняется обращение к элементу формы, вместо объекта формы можно индексировать его свойство

elements
:

document.forms.address.elements[0]

document.forms.address.elements.street

Для выбора конкретных элементов документа предпочтительнее использовать атрибут

id
. Однако при отправке форм атрибут
name
играет особую роль и чаще используется с самими формами, чем с элементами форм. Обычно при работе с группами флажков и обязательно при работе с группами радиокнопок для атрибута
name
используется одно и то же значение. Напомню, что, когда объект
HTMLCollection
индексируется именем и существует сразу несколько элементов, использующих одно и то же имя, возвращаемым значением является объект, подобный массиву, содержащий все элементы с указанным именем. Взгляните на следующую форму, содержащую радиокнопки для выбора метода доставки товара:

<form name="shipping">

<fieldset>

<legend>Shipping Method</legend>

<label>

<input type="radio" name="method" value="1st">

первым классом

</1аbеl>

<label>

<input type=”radio" name="method" value="2day">

3a 2 дня самолетом

</label>

<label>

<input type="radio" name="method" value=”overnite">

В течение ночи

</label>

</fieldset>

</form>

Сослаться на массив радиокнопок в этой форме можно следующим образом:

var methods = document.forms.shipping.elements.method;

Обратите внимание, что элементы

<form>
имеют HTML-атрибут и соответствующее ему свойство с именем «method», поэтому в данном случае необходимо использовать свойство
elements
формы вместо прямого обращения к свойству
method
. Чтобы определить, какой метод доставки выбрал пользователь, необходимо обойти элементы формы в массиве и проверить свойство
checked
каждого из них:

var shippingjnethod;

for(var і = 0; і < methods.length; і++)

if (methods[і].checked) shipping_method = methods[i].value;

Со свойствами элементов форм, такими как

checked
и
value
, мы поближе познакомимся в следующем разделе.

15.9.2. Свойства форм и их элементов

Наиболее интересным для нас свойством объекта

Form
является массив
elements[],
описанный выше. Остальные свойства объекта
Form
менее важны. Свойства
action
,
encoding, method
и
target
непосредственно соответствуют атрибутам
action, encoding, method
и
target
элемента
<form>.
Все эти свойства и атрибуты используются для управления отправкой данных формы на веб-сервер и отображением результатов. Клиентский сценарий на языке JavaScript может устанавливать значения этих свойств, но это имеет смысл, только когда форма действительно отправляется серверной программе.

Поделиться:
Популярные книги

Я граф. Книга XII

Дрейк Сириус
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я граф. Книга XII

Газлайтер. Том 3

Володин Григорий
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 3

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца

Последний Паладин. Том 8

Саваровский Роман
8. Путь Паладина
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 8

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Вернувшийся: Посол. Том IV

Vector
4. Вернувшийся
Фантастика:
космическая фантастика
киберпанк
5.00
рейтинг книги
Вернувшийся: Посол. Том IV

Абордажник

Султанов Дмитрий Игоревич
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
8.05
рейтинг книги
Абордажник

Лекарь Империи 6

Карелин Сергей Витальевич
6. Лекарь Империи
Фантастика:
городское фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 6

Гримуар темного лорда II

Грехов Тимофей
2. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар темного лорда II

Неучтенный элемент. Том 10

NikL
10. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 10

Альфа-ноль. Компиляция. Книги 1-12

Каменистый Артем
Альфа-ноль
Фантастика:
рпг
попаданцы
фэнтези
5.00
рейтинг книги
Альфа-ноль. Компиляция. Книги 1-12

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11