Контролює введення даних у Input та Textarea (HTML)

Розглянемо типове завдання при розробці сайту – контроль даних, що вводяться користувачем у текстові поля. Найчастіше таке завдання вирішують просто – встановлюють перехоплювач події onKeyUp чи onKeyPress. У перехоплювачі роблять контроль даних, що вводяться в режимі реального часу, після кожного натискання на клавішу. Однак такий спосіб недостатньо коректний, оскільки відбувається відстеження події «натискання клавіші», а не події «введення даних у текстове поле». Я говорю про те, що сампроцес введення даних у текстове поле може здійснюватися різними способами:

  • Введення тексту з клавіатури
  • Вставте текст із буфера обміну за допомогою клавіш або контекстного меню.
  • Підстановка тексту різними програмами (наприклад, програми зберігання особистих даних)

Очевидно, що розв'язання задачі за допомогою перехоплення лише клавіатури охоплює лише половину доступних користувачеві способів введення. Звичайно, можна створити перехоплювач події натискання правої кнопки миші, однак це не захистить від програм, які автоматично вводять текст. Більше того, історично склалося так, що в Opera перехоплювач події натискання правої кнопки миші не працює.

Найефективніше розв'язання цього завдання – це використання плагінуjQuery TextChange. Він створює подію TextChange для зміни тексту в input і textarea. Плагін протестований на останніх Opera, Safari, Chrome, FireFox та IE 6-9.

Для того, щоб перехопити подію введення даних у конкретне текстове поле, необхідно скористатися методом jQuery .bind()

  1. $(document).ready( function ()
  2. $( '.classOfTextField' ).bind( 'textchange' , function ()
  3. // якісь дії
  4. return true ;>);
  5. >);

Рекомендуюскористатися цим плагіном, а не винаходити велосипеди, особливо якщо Ви вже використовуєте jQuery. Обсяг мінімальної версії 1.4 Кб.