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. Кнопки


Для відправки введених даних на формі використовуються кнопки. Для створення кнопки використовується або елемент button :

<button name="send">Відправити</button>

Або елемент input :

<input type="submit" name="send" value="Відправити" />

З точки зору функціональності в html ці елементи не зовсім рівноцінні, але в даному випадку вони нас цікавлять з точки зору взаємодії з кодом javascript.

При натисканні на будь-який з цих двох варіантів кнопки відбувається відправка форми за адресою, яка вказана у форми в атрибуті action , або за адресою веб-сторінки, якщо атрибут action не вказано. Однак в коді javascript ми можемо перехопити відправку, обробки події click

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

<form name="search">
    <input type="text" name="key"></input>
    <input type="submit" name="send" value="Відправити" />
</form>

<script>

function sendForm(e){
     
    // отримуємо значення поля key
    var keyBox = document.search.key;
    var val = keyBox.value;

    if(val.length>5){
        alert("Недопустима довжина строки");
        e.preventDefault();
    } 
    else{
        alert("Відправка дозволена");
    }
}
 
var sendButton = document.search.send;
sendButton.addEventListener("click", sendForm);

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

При натисканні на кнопку відбувається подія click , і для її обробки до кнопки прикріплюємо обробник sendForm . У цьому обробнику перевіряємо введений в текстове поле текст. Якщо його довжина більше 5 символів, то виводимо повідомлення про недостиму довжину і перериваємо звичайний хід події за допомогою виклику e.preventDefault () . В результаті форма не відправляється.

Якщо ж довжина тексту менша шести символів, то також виводиться повідомлення, і потім форма відправляється.

Також ми можемо при необхідності при відправці змінити адресу, на яку відправляються дані:

function sendForm(e){
     
    // отримуємо значення поля key
    var keyBox = document.search.key;
    var val = keyBox.value;

    if(val.length > 5){
        alert("Недопустима довжина строки");
        document.search.action="PostForm";
    }   
    else{
        alert("Відправка дозволена");
    }
}

В даному випадку, якщо довжина тексту більше п'яти символів, то текст відправляється, тільки тепер він відправляється за адресою PostForm , оскільки задана властивість action :

document.search.action="PostForm";

Для очищення форми призначені наступні рівноцінні по функціональності кнопки:

<button type="reset">Очистити</button>
<input type="reset" value="Очистити" />

При натисканні на кнопки відбудеться очищення форм. Але також функціональність по очищенню полів форми можна реалізувати за допомогою методу reset() :

function sendForm(e){
     
    // отримуємо значення поля key
    var keyBox = document.search.key;
    var val = keyBox.value;

    if(val.length > 5){
        alert("Недопустима довжина строки");
        document.search.reset();
        e.preventDefault();
    }   
    else{
        alert("Відправка дозволена");
    }
}

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

<input type="button" name="send" value="Відправити" />

При натисканні на подібну кнопку відправки даних не відбувається, хоча також генерується подія click :

<!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>

function printForm(e){
     
    // отримуємо значення поля key
    var keyBox = document.search.key;
    var val = keyBox.value;

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

    // створюємо новий параграф
    var pElement = document.createElement("p");

    // встановлюємо в нього текст
    pElement.textContent = val;

    // додаємо параграф в printBlock
    printBlock.appendChild(pElement);
}
 
var printButton = document.search.print;
printButton.addEventListener("click", printForm);

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

При натисканні на кнопку отримуємо введений в текстове поле текст, створюємо новий елемент параграфа для цього тексту і додаємо параграф в елемент printBlock .


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