- HTML Tag
- Definition and Usage
- Browser Support
- Attributes
- Формы и javascript. FORM
- Свойства форм
- Свойства первого набора
- Элементы форм
- Кнопки (BUTTON, RESET, SUBMIT)
- Свойства
- Метод
- Пример
- Нажатие кнопки
- Флажок (CHECKBOX)
- Свойства
- Метод
- Пример
- Метод click флажка
- Переключатель (RADIO)
- Свойства
- Метод
- Пример
- Метод click группы переключателей
- Список (SELECT)
- Свойства
- Методы
- Пример
- Работа с готовым списком
- Пример
- Динамическое заполнение списка
- Поле ввода (TEXT)
- Свойства
- Методы
- Пример
- Заполните анкету
- Текстовая область (TEXTAREA)
- Свойства
- Методы
- Пример
- Отправьте телеграмму
- Поле ввода пароля (PASSWORD)
- Свойства
- Методы
- Пример
- Регистрация
- Как я могу использовать select box как навигационное меню?
- Как я могу использовать картинку для кнопки submit?
- Передача данных между формами на различных страницах
- Почему document.formName.selectObject.value не отражает значение выбранного пункта в списке?
- Как мне получить значение выбранной в данный момент radio button в radio group или группе checkboxes?
- Как мне получить форму, чтобы инициировать процесс запуска клавишей Enter?
- Как я могу отключить поле текстового ввода?
- Как сделать загрузку страницы при выборе флажка?
- Сохранение данных в локальное хранилище браузера:
- Особенности onClick, onSubmit, onReset
- DOM объект элемента INPUT:
HTML Tag
An HTML form with two input fields and one submit button:
More «Try it Yourself» examples below.
Definition and Usage
The tag is used to create an HTML form for user input.
The element can contain one or more of the following form elements:
Browser Support
Attributes
Attribute | Value | Description |
---|---|---|
accept-charset | character_set | Specifies the character encodings that are to be used for the form submission |
action | URL | Specifies where to send the form-data when a form is submitted |
autocomplete | on off | Specifies whether a form should have autocomplete on or off |
enctype | application/x-www-form-urlencoded multipart/form-data text/plain | Specifies how the form-data should be encoded when submitting it to the server (only for method=»post») |
method | get post | Specifies the HTTP method to use when sending form-data |
name | text | Specifies the name of a form |
novalidate | novalidate | Specifies that the form should not be validated when submitted |
rel | external help license next nofollow noopener noreferrer opener prev search | Specifies the relationship between a linked resource and the current document |
target | _blank _self _parent _top | Specifies where to display the response that is received after submitting the form |
Формы и javascript. FORM
Сейчас мы поговорим о различных приемах работы сценариев JavaScript с HTML-формами.
Если в HTML-документе определена форма, то она доступна сценарию JavaScript как объект, входящий в объект document с именем, заданным атрибутом NAME тега FORM .
Свойства форм
Форма имеет два набора свойств, состав одного из которых фиксированный, а состав другого зависит от того, какие элементы определены в форме.
Свойства первого набора
- action. Значение атрибута ACTION тега FORM .
- encoding. Значение атрибута ENCTYPE тега FORM .
- method. Значение атрибута METHOD тега FORM .
- target. Значение атрибута TARGET тега FORM .
- elements. Массив всех элементов формы.
- length. Размер массива elements.
Элементы форм
Кнопки (BUTTON, RESET, SUBMIT)
Свойства
Метод
Пример
Нажатие кнопки
Нажатие кнопки
Флажок (CHECKBOX)
Свойства
- name. Имя объекта.
- value. Надпись на кнопке.
- checked. Состояние флажка: true — флажок установлен, false — флажок не установлен.
- defaultChecked. Отражает наличие атрибута CHECKED : true — есть, false — нет.
Метод
Пример
Метод click флажка
Флажок Состояние флажка можно изменить и этой кнопкой
Метод click флажка
Переключатель (RADIO)
Свойства
- name. Имя объекта.
- value. Надпись на кнопке.
- length. Количество переключателей в группе.
- checked. Состояние переключателя: true — переключатель включен, false — выключен.
- defaultChecked. Отражает наличие атрибута CHECKED : true — есть, false — нет.
Метод
Пример
Метод click группы переключателей
Мужской Женский Состояние переключателей можно изменить и этой кнопкой
Метод click группы переключателей
Список (SELECT)
Свойства
- name. Имя объекта.
- selectedIndex. Номер выбранного элемента или первого среди выбранных (если указан атрибут MULTIPLE ).
- length. Количество элементов (строк) в списке.
- options. Массив элементов списка, заданных тегами OPTION .
- value. Значение атрибута VALUE .
- text. Текст, указанный после тега OPTION .
- index. Индекс элемента списка.
- selected. Присвоив этому свойству значение true , можно выбрать данный элемент.
- defaultSelected. Отражает наличие атрибута SELECTED : true — есть, false — нет.
Методы
Пример
Работа с готовым списком
Работа с готовым списком
Кроме работы с готовыми списками JavaScript может заполнять список динамически. Для записи нового элемента списка используется конструктор Option c четырьмя параметрами, первый из которых задает текст, отображаемый в списке, второй — значение элемента списка, соответствующее значению атрибута VALUE , третий соответствует свойству defaultSelected , четвертый — свойству selected .
Пример
Динамическое заполнение списка
Динамическое заполнение списка
Поле ввода (TEXT)
Свойства
- name. Имя объекта.
- defaultValue. Начальное содержимое поля.
- value. Текущее содержимое поля.
Методы
- focus( ). Передает полю фокус ввода.
- blur( ). Отбирает у поля фокус ввода.
- select( ). Выделяет содержимое поля.
Пример
Заполните анкету
Фамилия: Имя: Возраст: Телефон:
Заполните анкету
Обратите внимание на то, что символы фамилии и имени при потере фокуса соответствующими полями преобразуются в прописные. Для этого используется метод toUpperCase , определенный во встроенном классе строк.
Текстовая область (TEXTAREA)
Свойства
- name. Имя объекта.
- defaultValue. Начальное содержимое области.
- value. Текущее содержимое области.
Методы
- focus( ). Передает области фокус ввода.
- blur( ). Отбирает у области фокус ввода.
- select( ). Выделяет содержимое области.
Пример
Отправьте телеграмму
Отправьте телеграмму
Для установки курсора в определенное место textarea-области используйте следующую кросбраузерную функцию:
Поле ввода пароля (PASSWORD)
Свойства
- name. Имя объекта.
- defaultValue. Начальное содержимое поля.
- value. Текущее содержимое поля.
Методы
- focus( ). Передает полю фокус ввода.
- blur( ). Отбирает у поля фокус ввода.
- select( ). Выделяет содержимое поля.
Пример
Регистрация
Идентификатор: Пароль: Проверка пароля:
Регистрация
Как я могу использовать select box как навигационное меню?
При использовании простого JavaScript, вы можете использовать select box для передвижения по сайту. Рассмотрите этот пример:
Просто сохраните URL различных страниц в option value. Обработчик события OnChange вызовет перенаправление расположения, когда значение в поле изменено. Вы могли бы использовать этот код, чтобы изменить расположение другого фрейма изменением ‘self.location =’ на ‘top.framename.location =‘
Как я могу использовать картинку для кнопки submit?
Часто возникает вопрос: «Как инициировать форму по картинке, а не по кнопке submit?» Решение столь же просто, как этот пример:
Когда нажимается любая кнопка, форма инициируется и координаты x/y щелчка мыши на кнопке загружаются в объект запроса. Например, если пользователь выбрал Cancel!, объект запроса будет содержать переменные cancel.x и cancel.y. Точно так же щелчок на Continue привел бы к переменным continue.x и continue.y. Здесь важно отметить, что элементы .x и .y — не переменные объектов continue или cancel, а фактически часть имени «continue.x». Следовательно, нельзя использовать типичный метод для определения существования одного из дочерних объектов запроса:
if (request.normalItem) act(); if (request.continue.x) // Noooo! Produces horrible error messages! doContinuingThings();
if (request['normalItem']) act(); if (request['continue.x']) // Much better :) doContinuingThings();
Благодаря названным массивам JavaScript, можно проверить какая картинка инициировала форму. Для некоторых приложений, полезно знать координаты курсора на нажатой картинке. Эта информация, конечно, содержится в парах image_element.x и image_element.y. Следующий серверный JavaScript мог бы использоваться для этого:
x=0; y=0; if ((request[‘my_submit_image.x’]) (request[‘my_submit_image.y’]))
Передача данных между формами на различных страницах
В качестве простого примера, предположите, что ваша «домашняя» страница запрашивает имя пользователя, затем использует это имя, чтобы обратиться к пользователю на следующих страницах. Вы можете взять имя, используя форму, затем использовать JavaScript для передачи имени пользователя в следующую страницу, используя URL. Последующая страница могла бы затем анализировать имя пользователя из URL, используя информацию в document.search.
home.html
Enter your name:
userName = document.search; userName = userName.substring(userName.indexOf("=")+1); document.write("Greetings, " + userName + "");
Почему document.formName.selectObject.value не отражает значение выбранного пункта в списке?
Потому что объект работает не таким образом. Правильный и полный синтаксис для доступа к VALUE только что выбранным полем в списке — это:
Document.form.selectObject[document.form.selectObject.selectedIndex].value
Document.form.selectObject[document.form.selectObject.selectedIndex].text
Как мне получить значение выбранной в данный момент radio button в radio group или группе checkboxes?
Существует свойство, созданное в объекте form для каждой radio buttons или checkboxes с тем же самым именем. Например, следующий HTML код:
приводит к созданию 3-х элементов массива, вызываемых с помощью document.theForm.gender. Чтобы определить значение выбранной кнопки (или checkbox’а), вам нужно проверить свойство checked каждого из элементов. Например:
Для получения и установки значения radio button value на javascript можно использовать следующие функции:
function getCheckedValue(radioObj) < if(!radioObj) return ""; var radioLength = radioObj.length; if(radioLength == undefined) if(radioObj.checked) return radioObj.value; else return ""; for(var i = 0; i < radioLength; i++) < if(radioObj[i].checked) < return radioObj[i].value; >> return ""; > function setCheckedValue(radioObj, newValue) < if(!radioObj) return; var radioLength = radioObj.length; if(radioLength == undefined) < radioObj.checked = (radioObj.value == newValue.toString()); return; >for(var i = 0; i < radioLength; i++) < radioObj[i].checked = false; if(radioObj[i].value == newValue.toString()) < radioObj[i].checked = true; >> >
Как мне получить форму, чтобы инициировать процесс запуска клавишей Enter?
Форма отправляется, если нажата клавиша enter, в то время как единственный входной текстовый элемент формы имеет фокус. Вы можете вызывать подобное поведение в форме, имеющей более одного элемента, разбивая форму на ряд отдельных форм, так, чтобы каждая форма имела только один текстовый элемент. Используйте обработчик события onSubmit (или action ) для накопления данных из других форм в вашей странице и инициируйте их все сразу.
Как я могу отключить поле текстового ввода?
Как сделать загрузку страницы при выборе флажка?
Сохранение данных в локальное хранилище браузера:
sessionStorage — запоминает результат пока открыт сайт во вкладке(окне), можно свободно перемещаться по сайту, обновлять страницы, но не закрывать окно браузера(вкладку). localStorage — запоминает результат на очень долгое время, пока пользователь не очистит локальное хранилище браузера. Можно через несколько дней зайти на сайт и увидеть ранее заполненную форму.
Особенности onClick, onSubmit, onReset
- метод click() у гиперссылки — влечет за собой вызов обработчика onClick этой ссылки
- метод click() у ЛЮБОЙ кнопки формы — влечет за собой вызов обработчика onClick этой кнопки
- метод reset() у формы — влечет за собой вызов обработчика onReset у формы
- НО метод submit() у формы — НЕ влечет за собой вызов обработчика onSubmit у формы!
DOM объект элемента INPUT:
interface HTMLInputElement : HTMLElement < attribute DOMString accept; attribute DOMString alt; attribute DOMString autocomplete; attribute boolean autofocus; attribute boolean defaultChecked; attribute boolean checked; attribute DOMString dirName; attribute boolean disabled; readonly attribute HTMLFormElement? form; readonly attribute FileList? files; attribute DOMString formAction; attribute DOMString formEnctype; attribute DOMString formMethod; attribute boolean formNoValidate; attribute DOMString formTarget; attribute unsigned long height; attribute boolean indeterminate; readonly attribute HTMLElement? list; attribute DOMString max; attribute long maxLength; attribute DOMString min; attribute boolean multiple; attribute DOMString name; attribute DOMString pattern; attribute DOMString placeholder; attribute boolean readOnly; attribute boolean required; attribute unsigned long size; attribute DOMString src; attribute DOMString step; attribute DOMString type; attribute DOMString defaultValue; attribute DOMString value; attribute Date? valueAsDate; attribute double valueAsNumber; attribute unsigned long width; void stepUp(optional long n); void stepDown(optional long n); readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(DOMString error); readonly attribute NodeList labels; void select(); attribute unsigned long selectionStart; attribute unsigned long selectionEnd; attribute DOMString selectionDirection; void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); >;