Среди других текстовых и наглядных пособий по отправке формы, после проверки, я окрашиваю свои поля ввода в красный, чтобы обозначить интерактивную область, требующую внимания.
В Chrome (и для пользователей панели инструментов Google) функция автозаполнения перекрашивает мои формы ввода в желтый. Вот сложная проблема: я хочу, чтобы автозаполнение было разрешено в моих формах, так как это ускоряет вход пользователей в систему. Я собираюсь проверить возможность отключения атрибута автозаполнения, если / когда возникает ошибка, но она сложная немного кода, чтобы программно отключить автозаполнение для единственного затронутого ввода на странице. Проще говоря, это будет большая головная боль.
Итак, чтобы избежать этой проблемы, есть ли более простой способ остановить Chrome от перекрашивания полей ввода?
[править] Я попробовал! Важное предложение ниже, но оно не дало никакого эффекта. Я еще не проверял панель инструментов Google, чтобы узнать, будет ли для этого работать атрибут! Important.
Насколько я могу судить, нет другого средства, кроме как использовать атрибут autocomplete (который, похоже, работает).
источник
Ответы:
Я знаю, что в Firefox вы можете использовать атрибут autocomplete = "off", чтобы отключить функцию автозаполнения. Если это работает в Chrome (не проверял), вы можете установить этот атрибут при возникновении ошибки.
Это может быть использовано как для одного элемента
... а также для всей формы
источник
<%= simple_form_for @user, html: { autocomplete: 'off' } do |f| %>
Установите свойство CSS outline в none.
В тех случаях, когда браузер также может добавить цвет фона, это может быть исправлено чем-то вроде
источник
:focus { background-color: #fff; }
input[type=text], input[type=password], input[type=email], textarea, select { outline: none; }
это именно то, что вы ищете!
источник
input:-webkit-autofill, input:focus:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #FFF inset; }
Используя немного jQuery, вы можете удалить стиль Chrome, сохранив при этом функциональность автозаполнения. Я написал небольшой пост об этом здесь: http://www.benjaminmiles.com/2010/11/22/fixing-google-chromes-yellow-autocomplete-styles-with-jquery/
источник
Чтобы удалить границу для всех полей, вы можете использовать следующее:
*:focus { outline:none; }
Чтобы удалить границу для полей выбора, просто примените этот класс к нужным полям ввода:
.nohighlight:focus { outline:none; }
Вы также можете изменить границу по своему желанию:
.changeborder:focus { outline:Blue Solid 4px; }
(От Билла Бекельмана: Переопределить автоматическую рамку Chrome вокруг активных полей с помощью CSS )
источник
Да, это будет большая головная боль, которая, по моему мнению, не стоит возвращаться. Возможно, вы могли бы немного изменить свою стратегию пользовательского интерфейса, и вместо того, чтобы красить прямоугольник, вы можете покрасить границы в красный цвет или поставить рядом с ним маленькую красную ленту (например, ленту «Загрузка» gmail), которая исчезает, когда ящик находится в фокус.
источник
Это кусок пирога с JQuery:
Или, если вы хотите быть более избирательным, добавьте имя класса для селектора.
источник
На мой взгляд, более простой способ:
Используйте этот код:
источник
После применения @Benjamin его решения я обнаружил, что нажатие кнопки «назад» все равно даст мне желтую подсветку.
Мое решение как-то предотвратить возвращение этой желтой подсветки - применить следующий jQuery javascript:
Надеюсь, это кому-нибудь поможет !!
источник
Это работает. Лучше всего, вы можете использовать значения rgba (хак box-shadow inset не работает с rgba). Это небольшое изменение ответа @ Бенджамина. Я использую $ (document) .ready () вместо $ (window) .load (). Кажется, это работает лучше для меня - теперь гораздо меньше FOUC. Я не верю, что есть и недостатки использования $ (document) .ready ().
источник
для сегодняшних версий это также работает, если размещено на одном из двух входов в систему. Также исправьте версию 40+ и позднюю проблему Firefox.
источник
Это отлично сработало для меня, но, скорее всего, вы сохраните единообразие на своем сайте, и вы захотите включить это в свой CSS для textareas:
Также это может показаться очевидным для большинства, но для начинающих вы также можете установить его на цвет как таковой:
источник
Если я правильно помню, важное в таблице стилей правило!! Для цвета фона входных данных переопределяет автозаполнение панели инструментов Google - вероятно, то же самое относится и к Chrome.
источник