Javascript Підказки всередині INPUT - Leonid Shevtsov

Передмова 2011 року

На щастя, всі сучасні оглядачі підтримують атрибут placeholder , що дозволяє підказати всередині дуже просто і без Javascript:

Будь ласка, використовуйте цей спосіб.

Якщо хочеться підтримувати і не дуже сучасні браузери, наприклад, IE молодші за дев'ятку, доведеться підмішувати трохи Javascript для сумісності. Якщо ви використовуєте jQuery, для нього є відмінний плагін jQuery.placeholder. Перевага такого підходу в тому, що якщо браузер сам підтримує властивість placeholder, то ніякого яваскрипту йому не знадобиться. А ще в тому, що цей плагін підхоплює підказки безпосередньо з HTML, і їх не потрібно оголошувати окремо, як робив це я у своєму скрипті.

Для історії та людей, які бажають зробити підказки з особливим цинізмом, залишаю оригінал статті. Вихідники теж старі – такі ось скрипти я писав три роки тому.

Стаття 2008 року

Висновок якогось тексту в , коли він порожній.

Скрипт взятий із написаного мною у 2008 році пісенного архіву lyrified.com.

Постановка завдання: потрібно, щоб у порожньому виводився приглушеним кольором текст, наприклад, підказка.

HTML-розмітка

Javascript

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

Щоб додати конкретне поле до цього масиву, використовуємо функцію:

Зверніть увагу, щоб визначити, порожнє поле чи ні, вже не можна перевірити value=='' . Тому потрібно написати функцію:

Обробник події нафокусі: якщо поле було порожнім (але в ньому відображалася підказка), при отриманні фокусу його потрібно очистити.

Крім того, виставляється прапорець, якийзакріплюється.

Обробник подіїonBlur: якщо користувач закінчив редагування поля та залишив його порожнім, потрібно повернути підказку.

Прапорець isFocused знімається.

Використання

Для кожного поля, що задіяно, викликаємо функцію inputHint_init :