Как сделать чтобы функция применялась к каждому элементу? (Убрать placeholder при фокусе на input)
Как сделать чтоб placeholder удалялся у кажого input’a. В данному случае удаляется только у первого инпута Login Спасибо за ответ.
Отслеживать
23.8k 4 4 золотых знака 35 35 серебряных знаков 68 68 бронзовых знаков
задан 2 мар 2021 в 15:25
onfocus=»this.placeholder = »»
2 мар 2021 в 15:44
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Читайте код, чтобы его понимать.
Вы вешаете обработчик только на один элемент — document.querySelector(«.login_input»)
Чтобы повесить на несколько, нужно «повесить на несколько», например так
let elements = document.querySelectorAll('input'); // Возмём !все! элементы input, т.е. наша переменная является массивом с этими элементами. elements.forEach(function(e)< // Проходим циклом по всем элементам e.addEventListener('focus', function(e)< // И на каждый вешаем один и тот же обработчик e.target.value = 'FOCUS'; >); e.addEventListener('blur', function(e)< e.target.value = ''; >); >);
Или пользуемся делегирование событий, это лучший вариант (ИМХО).
Подробнее почитайте тут — ссылка
document.body.addEventListener('focus', function(e) < //Обработчик вешается уже какой-то родитель, который содержит в себе все эти элементы. if(e.target.tagName === 'INPUT') < e.target.value = 'FOCUS'; >>, true); document.body.addEventListener('blur', function(e) < if(e.target.tagName === 'INPUT') < e.target.value = ''; >>, true);
Как убрать placeholder при клике по input
placeholder — это атрибут в html5, который выводит текст внутри поля input, и этот текст исчезает, когда пользователь начинает там писать свой текст. Это нужно, например, в форме поиска, чтобы убрать текст подсказки внутри неё при клике по ней.
Первый способ (рекомендуется): через css
input:focus::-webkit-input-placeholder < color:transparent; >input:focus:-moz-placeholder < color:transparent; >/* FF 4-18 */ input:focus::-moz-placeholder < color:transparent; >/* FF 19+ */ input:focus:-ms-input-placeholder < color:transparent; >/* IE 10+ */
Второй способ: через jquery
$(document).ready(function () < $('input,textarea').focus(function()< $(this).data('placeholder',$(this).attr('placeholder')) $(this).attr('placeholder',''); >); $('input,textarea').blur(function()< $(this).attr('placeholder',$(this).data('placeholder')); >); >);
Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Стилизация placeholder
Placeholder’ом можно легко заменить целую строчку текста над input’ом, что отлично экономит место и делает форму более привлекательной. Рассмотрим варианты стилизации и исчезания надписи при фокусе.
- Изменение цвета placeholder. В этом случае просто задается стиль color (с поддержкой различных браузеров)
- Убрать placeholder при фокусе. Многим удобнее, когда помогающая надпись исчезает при фокусе. Для этого стоит присвоить стиль color: transparent
- Плавное исчезание placeholder. С помощью transition можно придать плавность трансформации/изменения цвета и т.д.
- Плавный сдвиг в сторону. Сдвиг текста удачно реализуется с помощью отступа первой строки блока текста. За это отвечает свойство text-indent
Возможно, вам будет интересно:

Выпадающее меню при наведении и клике js
Вам нужен сайт? С чего начать?
Проконсультируем, найдем оптимальное решение, подготовим индивидуальное предложение.
О нас
AKWEB Development – группа инициативных, профессиональных, высококвалифицированных и опытных разработчиков. Мы готовы предложить создание ресурса любого уровня сложности и в любом формате, оперативно решить все проблемы и трудности, а также помочь квалифицированной консультацией.
Контакты
- Волынская область, г.Владимир-Волынский, ул.Гайдамацкая,24.
- info@akweb.com.ua
- +380(63)606-25-95