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. текстові поля


Для введення найпростішої текстової інформації призначені елементи <input type="text" :

<input type="text" name="kye" size="10" maxlength="15" value="hello world" />

Даний елемент підтримує ряд подій, зокрема:

  • focus : Відбувається при отриманні фокусу

  • blur : Відбувається при втраті фокуса

  • change : Відбувається при зміні значення поля

  • select : Відбувається при виділенні тексту в текстовому полі

  • keydown : Відбувається при натисканні клавіші клавіатури

  • keypress : Відбувається при натисканні клавіші клавіатури для друкованих символів

  • keyup : Відбувається при відпусканні раніше натиснутої клавіші клавіатури

Застосуємо ряд подій:

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

<form name="search">
    <input type="text" name="key" placeholder="Введите ключ"></input>
    <input type="button" name="print" value="Печать" />
</form>

<div id="printBlock"></div>

<script>

var keyBox = document.search.key;
 
// обробник зміни тексту

function onchange(e){
    // отримуємо елемент printBlock
    var printBlock = document.getElementById("printBlock");

    // отримуємо нове значення
    var val = e.target.value;

    // установка значення
    printBlock.textContent = val;
}

// обробка втрати фокуса
function onblur(e){
     
    // отримуємо його значення і обрізаємо всі пробіли
    var text = keyBox.value.trim();
    if(text==="")
        keyBox.style.borderColor = "red";
    else
        keyBox.style.borderColor = "green";
}

// отримуємо фокус
function onfocus(e){
     
    // установка кольору границь поля
    keyBox.style.borderColor = "blue";
}

keyBox.addEventListener("change", onchange);
keyBox.addEventListener("blur", onblur);
keyBox.addEventListener("focus", onfocus);

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

Тут до текстового поля прикріплюється три обробника для подій blur , focus і change . Обробка події change дозволяє сформувати щось на зразок прив'язки: при зміні тексту весь текст відображається в блоці printBlock . Але треба враховувати, що подія change виникає не відразу після зміни тексту, а після втрати ним фокусу.

Обробка події втрати фокусу blur дозволяє провести валідацію введеного значення. Наприклад, в даному випадку якщо текст складається з пробілів або не був введений, то фарбуємо рамку поля в червоний колір.

Крім цього текстове поле має ще спеціальні поля вводу. Так, поле <input type="password" призначене для вводу пароля. За функціональністю воно багато в чому аналогічно звичайному текстовому полю за тим винятком, що для символів, що вводять використовується маска:

<input type="password" name="password" />

Якщо нам треба, щоб на формі було деяке значення, але щоб воно було приховано від користувача, то для цього можуть використовуватися приховані поля:

<input type="hidden" name="id" value="345" />

Для прихованого поля зазвичай не використовується обробка подій, але також, як і для інших елементів, ми можемо в javascript отримати його значення або змінити його.


елемент textarea

Для створення багаторядкових текстових полів використовується елемент textarea :

<textarea rows="15" cols="40" name="textArea"></textarea>

Даний елемент генерує всі ті ж самі події, що і звичайне текстове поле:

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

<form name="search">
    <textarea rows="7" cols="40" name="message"></textarea>
</form>

<div id="printBlock"></div>

<script>

var messageBox = document.search.message;
 
// обробник вводу символа
function onkeypress(e){
    // отримуємо елемент printBlock
    var printBlock = document.getElementById("printBlock");

    // отримуємо введений символ
    var val = String.fromCharCode(e.keyCode);

    // додавання символа
    printBlock.textContent += val;
}
 
function onkeydown(e){

    if(e.keyCode === 8){ // якщо нажатий Backspace
     
        // отримуємо елемент printBlock
        var printBlock = document.getElementById("printBlock"), 
            length = printBlock.textContent.length;

        // обрізаємо строку по останньому символу
        printBlock.textContent = printBlock.textContent.substring(0, length-1);
    }
}
 
messageBox.addEventListener("keypress", onkeypress);
messageBox.addEventListener("keydown", onkeydown);

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

Тут до текстового поля прикріплюються обробники для подій keypress і keydown . У обробнику keypress отримуємо введений символ за допомогою конвертації числового коду клавіші в рядок:

var val = String.fromCharCode(e.keyCode);

Потім символ додається до вмісту блоку printBlock .

Подія keypress виникає при натисканні на клавіші для друкованих символів, то такі символи відображаються в текстовому полі. Однак є й інші клавіші, які впливають на текстове поле, але вони не дають відображаючого символу, тому не відслідковуються подією keypress . До таких клавіш відноситься клавіша Backspace , яка видаляє останній символ. І для її відстеження також обробляємо подію keydown . У обробнику keydown видаляємо з рядка в блоці printBlock останній символ.


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