Я создаю поле формы с кнопкой «четкое значение» - например, на iOS есть значок «X», который вы можете нажать, чтобы очистить строку поиска.Поле ввода поля очистки, вызывающее событие размытия - как избежать
Моя проблема: я использую событие размытия поля для выполнения проверок ошибок в формате ввода, а моя реализация значка «X» всегда вызывает событие размытия.
Я в тупик: если я помещаю значок в качестве фонового изображения в поле ввода, у меня больше нет цели клика, и если я использую стандартный div или img, расположенный поверх поля, триггеры размытия.
Я использую jQuery, но это может быть общая проблема CSS/javascript.
например принятое решение здесь: Clear icon inside input text это прекрасный пример первоначального намерения, но это также вызовет событие размытия, как только вы его присоедините.
UPDATE: Похоже, что лучший способ заключается в использовании функции проверки ошибок - но я не люблю его, поэтому я продолжал смотреть ... Оказывается, я не знал об атрибуте contenteditable
в HTML5.
Помимо очевидной проблемы доступности, связанной с использованием полей формы для данных формы и забыванием о старых моделях, которые не могут выполнять HTML5, почему бы НЕ воссоздать поля ввода с контентными тегами div?
смазанности пожары, потому что вы удалить фокус при нажатии на кнопку, что вы ожидаете? – epascarello
Если вы используете фоновое изображение, у вас все еще есть цель клика ... он просто не идеален для использования. Вам нужно будет узнать, куда был нажат вход, и если он находился в пределах определенной границы (где находится кнопка «clear»), затем очистите текст. В противном случае это был обычный щелчок – Ian