JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript FORMS. Список select


Для створення списку використовується html-елемент select . Причому з його допомогою можна створювати як списки, що випадають, так і звичайні з одинарним або множинним вибором. Наприклад, стандартний список:

<select name="language" size="4">
    <option value="JS" selected="selected">JavaScript</option>
    <option value="Java">Java</option>
    <option value="C#">C#</option>
    <option value="C++">C++</option>
</select>

Атрибут size дозволяє встановити, скільки елементів буде відображатися одночасно в списку. Значення size="1" відображає тільки один елемент списку, а сам список стає випадаючим. Якщо встановити у елемента select атрибут multiple , то в списку можна вибрати відразу кілька значень.

Кожен елемент списку представлений html-елементом option , у якого є відображаюча мітка і є значення у вигляді атрибуту value .

В JavaScript елементу select відповідає об'єкт HTMLSelectElement , а елементу option - об'єкт HtmlOptionElement або просто Option .

Всі елементи списку в javascript доступні через колекцію options . А кожен об'єкт HtmlOptionElement має властивості: index (індекс в колекції options ), text (відображається текст) і value (значення елемента). Наприклад, отримаємо перший елемент списку і виведемо про нього через його властивості всю інформацію:

<form name="myForm">
    <select name="language" size="4">
        <option value="JS" selected="selected">JavaScript</option>
        <option value="Java">Java</option>
        <option value="CS">C#</option>
        <option value="CPP">C++</option>
    </select>
</form>
<script>

var firstLanguage = myForm.language.options[0];

document.write("Index: " + firstLanguage.index + "<br/>");
document.write("Text: " + firstLanguage.text + "<br/>");
document.write("Value: " + firstLanguage.value + "<br/>");
</script>

У javascript ми можемо не тільки отримувати елементи, але і динамічно управляти списком. Наприклад, можна застосувати додавання і видалення об'єктів списку:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>

<form name="myForm">
    <select name="language" size="5">
        <option value="JS" selected="selected">JavaScript</option>
        <option value="Java">Java</option>
        <option value="CS">C#</option>
        <option value="CPP">C++</option>
    </select>

    <p><input type="text" name="textInput" placeholder="Введіть текст" /></p>
    <p><input type="text" name="valueInput" placeholder="Введіть значення" /></p>
    <p><input type="button" name="addButton" value="Добавить" /><input type="button" name="removeButton" value="Видалити" /></p>
</form>
 
<script>

var addButton = myForm.addButton, 
    removeButton = myForm.removeButton, 
    languagesSelect = myForm.language;

// обробник додавання елемента

function addOption(){
    // отримуємо текст для елемента
    var text = myForm.textInput.value;

    // отримуємо значення для елемента
    var value = myForm.valueInput.value;

    // створюємо новий елемент
    var newOption = new Option(text, value);
    languagesSelect.options[languagesSelect.options.length]=newOption;
}

// обробник видалення елемента

function removeOption(){
     
    var selectedIndex = languagesSelect.options.selectedIndex;
    // видаляємо елемент 
    languagesSelect.options[selectedIndex] = null;
}
 
addButton.addEventListener("click", addOption);
removeButton.addEventListener("click", removeOption);

</script>
</body>
</html>

Для додавання на формі призначено два текстових поля (для текстової мітки і значення елемента option ) і кнопка. Для видалення виділеного елемента призначена ще одна кнопка.

За додавання в коді javascript відповідає функція addOption , в якій отримуємо введені в текстові поля значення, створюємо новий об'єкт Option і додаємо його в масив options об'єкта списку.

За видалення відповідає функція removeOption , в якій просто отримуємо індекс виділеного елемента за допомогою властивості selectedIndex і в колекції options прирівнюємо за цим індексом значення null .

Для додавання / видалення також в якості альтернативи можна використовувати методи елемента select :

// замість виклику
// languagesSelect.options[languagesSelect.options.length]=newOption;

// використовуємо для додавання виклик метода add
languagesSelect.add(newOption);

// замість виклику
// languagesSelect.options[selectedIndex] = null;

// використовуємо для видалення метод remove
languagesSelect.remove(selectedIndex);

Події елемента select

Елемент select підтримує три події: blur (втрата фокусу), focus (отримання фокусу) і change (зміна виділеного елемента в списку). Розглянемо застосування події select :

<form name="myForm">
    <select name="language" size="5">
        <option value="JS" selected="selected">JavaScript</option>
        <option value="Java">Java</option>
        <option value="CS">C#</option>
        <option value="CPP">C++</option>
    </select>
</form>

<div id="selection"></div>

<script>

var languagesSelect = myForm.language;
 
function changeOption(){
     
    var selection = document.getElementById("selection");
    var selectedOption = languagesSelect.options[languagesSelect.selectedIndex];
    selection.textContent = "Ви вибрали: " + selectedOption.text;
}
 
languagesSelect.addEventListener("change", changeOption);

</script>

Наш партнер:
beta test mp3 playlist downloader