JS властивість Event.inputType


Загальний опис

inputType є властивістю об’єкта InputEvent, яка описує тип зміни, що відбулася з елементом введення. Це може бути корисно, коли потрібно визначити, як саме змінився текст у полі вводу, будь то додавання або видалення тексту, вставка або заміна тощо. Наприклад, inputType може повертати значення "insertText", "deleteContentBackward", "insertFromPaste" і багато інших.

Ця властивість особливо корисна у випадках, коли потрібно реагувати на різні типи змін, внесених користувачем. Наприклад, при введенні тексту в полі можна визначити, чи це була вставка тексту, видалення, вставка з буфера обміну або інша операція. Використання inputType спрощує написання умовних операторів для обробки певних типів змін.

Ось приклад коду, який демонструє використання inputType:

   document.querySelector('input').addEventListener('input', (event) => {
       console.log(event.inputType);
   });

Кожен раз, коли користувач взаємодіє з полем введення, буде виводитись відповідний тип операції. Це може бути "insertText", коли вводиться текст, або "deleteContentBackward", коли видаляється текст.

Робота з inputType допомагає розрізняти, що саме користувач зробив у полі введення. Наприклад, значення "insertFromPaste" означатиме, що користувач вставив текст з буфера обміну. Такі можливості допомагають створювати більш точну та гнучку логіку для обробки введення, особливо для додатків, де критично важливо розуміти, яким чином змінюється вміст.

автор: Bond

Порада

Не завжди надійтесь на inputType для детекції швидких клавіш. inputType не буде точним для таких дій, як "Ctrl + Z" (відміна) або "Ctrl + X" (вирізання). Якщо важливо відстежувати ці комбінації, розгляньте додаткове використання події keydown.

автор: Bond
Порада

Враховуйте можливість автоматичних змін. Деякі мобільні клавіатури можуть автоматично змінювати введення користувача, що inputType відзначить, як "insertReplacementText". Це може порушити логіку перевірки введення, тому обробляйте такі зміни з обережністю.

автор: Bond
Порада

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

автор: Bond

Синтаксис

event.inputType

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
60 66 10.1 47 79
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
60 60 66 10.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад дозволяє відслідковувати випадки автозаміни тексту, наприклад, коли мобільна клавіатура автоматично замінює текст на запропоноване слово. Це важливо для форм з точним контролем введення, де навіть незначні зміни можуть мати значення для подальшої обробки.

HTML

<input type="text" value="текст для прикладу">

JS

document.querySelector('input').addEventListener('input', (event) => {
    if (event.inputType === 'insertReplacementText') {
        console.log('Автозамінений текст:', event.target.value);
    }
});
автор: Bond

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

HTML

<input type="text" value="текст для прикладу">

JS

document.querySelector('input').addEventListener('input', (event) => {
    if (event.inputType === 'insertFromPaste') {
        alert('Вставлений текст з буфера обміну');
    }
});
автор: Bond

Використовуючи цей приклад, користувач може ввести текст вручну, вставити його з буфера обміну або видалити символи, і побачити в реальному часі, як змінюється значення inputType та його відображення. Колір тексту змінюється відповідно до типу введення, що робить приклад більш наочним і зрозумілим.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід