forms - garevna/js-course GitHub Wiki
:mortar_board: Элементы форм
button |
input |
select |
textarea |
|---|
:mortar_board: input
Элемент input имеет свойства type и value
Интерфейс элемента зависит от значения свойства type
Возможные значения свойства type:
buttoncheckboxcolordatedatetime-localemailfileimagemonthnumberpasswordradiorangeresetsearchsubmitteltexttimeurlweek
Элемент может быть полем ввода текста, чисел, даты, времени, пароля, e-mail,
а может быть кнопкой, палитрой выбора цвета, окном выбора файла
Это может быть checkbox или переключатель radio button...
У элементов input типа checkbox и radio помимо свойства value есть свойство checked
Свойство checked принимает логическое значение true или false
:mortar_board: event handlers
Обработка событий элементов форм
Вставьте на страницу элемент 'p', установите его свойство id = "demo"
var demo = document.createElement ( 'p' )
demo.id = "demo"
demo.style.fontSize = "16px"
demo.style.color = "blue"
document.body.appendChild ( demo )
Две объявленные ниже функции будут обработчиками событий элементов форм в дальнейших примерах
inputValueChangedHandler
function inputValueChangedHandler ( event ) {
var p = event.target.id + " value: " + event.target.value
demo ? demo.innerHTML += p + "<br>" : console.log ( p )
}
inputClickHandler
function inputClickHandler ( event ) {
var p = event.target.id + " checked: " + event.target.checked
demo ? demo.innerHTML += p + "<br>" : console.log ( p )
}
:coffee: :one: type = "text"
var inp = document.createElement ( 'input' )
inp.type = "text"
inp.id = "input text"
document.body.appendChild ( inp )
inp.onchange = inputValueChangedHandler
:coffee: :two: type = "color"
var clr = document.createElement ( 'input' )
clr.type = "color"
clr.id = "color picker"
document.body.appendChild ( clr )
clr.onchange = inputValueChangedHandler
:mortar_board: Переключатели
Свойство value этих элементов можно установить любым
Переключатели типа radio можно объединить в одну группу с помощью свойства name
( оно должно иметь одно и то же значение для всех переключателей группы )
Элементы имеют свойство checked булевого типа
- если элемент выбран, то
checkedимеет значениеtrue - в противном случае -
false
:warning: свойство value при этом не меняется
:coffee: :three: type = "radio"
for ( var i = 0; i < 3; i++ ) {
var radio = document.createElement ( 'input' )
radio.type = "radio"
radio.name = "radio"
radio.id = "radio_" + ( i + 1 )
radio.value = i + 1
radio.onchange = inputValueChangedHandler
radio.onclick = inputClickHandler
document.body.appendChild ( radio )
}
| :coffee: Пример в песочнице |
|---|
:coffee: :four: type = "checkbox"
for ( var i = 0; i < 3; i++ ) {
var chk = document.createElement ( 'input' )
chk.type = "checkbox"
chk.name = "checkbox"
chk.id = "checkbox_" + ( i + 1 )
chk.onchange = inputValueChangedHandler
chk.onclick = inputClickHandler
document.body.appendChild ( chk )
}
| :coffee: Пример в песочнице |
|---|
:mortar_board: select
Элемент select - выпадающий список
Элемент option - элемент выпадающего списка
Элемент select является контейнером для элементов option
Свойства элементов option
value- значение, которое будет возвращено элементомselectпри выборе этого элемента спискаinnerText- текст, который будет виден пользователю в выпадающем списке
Свойства элемента select
value- значениеvalueвыбранногоoptionselectedIndex- порядковый номер выбранногоoption
:coffee: :five:
var members = [
"...",
"Алексеенко Валерия",
"Андриенко Екатерина",
"Бусуйко Кристина",
"Велигура Андрей",
"Веретельник Егор",
"Головахин Андрей",
"Денисенко Степан",
"Карабут Александр",
]
var groupMembers = document.createElement ( 'select' )
document.body.appendChild ( groupMembers )
for ( var member of members ) {
var option = document.createElement ( 'option' )
groupMembers.appendChild ( option )
option.value = option.innerHTML = member
}
groupMembers.onchange = function ( ev ) {
text.innerHTML = ev.target.selectedIndex + ': ' + ev.target.value
}
var text = document.createElement ( 'p' )
document.body.appendChild ( text )