Entre otras ayudas visuales y de texto en el envío de un formulario, posterior a la validación, coloreo mis cuadros de entrada en rojo para indicar que el área interactiva necesita atención.
En Chrome (y para los usuarios de la barra Google), la función de autocompletar cambia el color de mis formularios de entrada en amarillo. Aquí está el problema complejo: quiero que se permita el autocompletado en mis formularios, ya que acelera el inicio de sesión de los usuarios. Voy a comprobar la capacidad de desactivar el atributo de autocompletar si hay un error activado, pero es un proceso complejo. Un poco de codificación para desactivar mediante programación el autocompletado para la entrada única afectada en una página. En pocas palabras, esto sería un gran dolor de cabeza.
Entonces, para tratar de evitar ese problema, ¿hay algún método más simple para evitar que Chrome vuelva a colorear los cuadros de entrada?
[editar] Intenté la importante sugerencia a continuación y no tuvo ningún efecto. Todavía no he revisado la barra Google para ver si el atributo! Important funcionaría para eso.
Por lo que puedo decir, no hay otro medio que no sea usar el atributo de autocompletar (que parece funcionar).
fuente
Respuestas:
Sé que en Firefox puedes usar el atributo autocomplete = "off" para deshabilitar la funcionalidad de autocompletar. Si esto funciona en Chrome (no lo he probado), puede configurar este atributo cuando se encuentre un error.
Esto se puede usar tanto para un solo elemento
... así como para un formulario completo
fuente
<%= simple_form_for @user, html: { autocomplete: 'off' } do |f| %>
Establezca la propiedad de esquema CSS en none.
En los casos en que el navegador también puede agregar un color de fondo, esto puede solucionarse mediante algo como
fuente
:focus { background-color: #fff; }
input[type=text], input[type=password], input[type=email], textarea, select { outline: none; }
¡Esto es exactamente lo que estás buscando!
fuente
input:-webkit-autofill, input:focus:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #FFF inset; }
Al usar un poco de jQuery, puede eliminar el estilo de Chrome mientras mantiene intacta la funcionalidad de autocompletar. Escribí una breve publicación al respecto aquí: http://www.benjaminmiles.com/2010/11/22/fixing-google-chromes-yellow-autocomplete-styles-with-jquery/
fuente
Para eliminar el borde de todos los campos, puede usar lo siguiente:
*:focus { outline:none; }
Para eliminar el borde de los campos seleccionados, simplemente aplique esta clase a los campos de entrada que desee:
.nohighlight:focus { outline:none; }
Por supuesto, también puede cambiar el borde como lo desee:
.changeborder:focus { outline:Blue Solid 4px; }
(De Bill Beckelman: anule el borde automático de Chrome alrededor de los campos activos con CSS )
fuente
Sí, sería un gran dolor de cabeza, que en mi opinión no vale la pena devolver. Tal vez podría modificar un poco su estrategia de UI, y en lugar de colorear el cuadro de rojo, podría colorear los bordes de rojo, o poner una pequeña cinta roja al lado (como la cinta "Cargando" de gmail) que se desvanece cuando el cuadro está en atención.
fuente
Es pan comido con jQuery:
O si desea ser un poco más selectivo, agregue un nombre de clase para un selector.
fuente
La forma más simple en mi opinión es:
Usa este código:
fuente
Después de aplicar @Benjamin su solución, descubrí que presionar el botón Atrás todavía me daría el resaltado amarillo.
Mi solución de alguna manera para evitar que vuelva a aparecer este resaltado amarillo es aplicando el siguiente javascript de jQuery:
Espero que ayude a cualquiera !!
fuente
Esto funciona. Lo mejor de todo es que puede usar valores rgba (el hack de recuadro de sombra no funciona con rgba). Este es un ligero ajuste de la respuesta de @ Benjamin. Estoy usando $ (document) .ready () en lugar de $ (window) .load (). Parece que funciona mejor para mí, ahora hay mucho menos FOUC. No creo que existan desventajas al usar $ (document) .ready ().
fuente
para las versiones actuales, esto también funciona si se coloca en una de las dos entradas de inicio de sesión. También corrija la versión 40+ y el último problema de Firefox.
fuente
Eso funcionó muy bien para mí, pero lo más probable es que mantenga las cosas uniformes en su sitio, también querrá incluir esto en su CSS para áreas de texto:
También puede parecer obvio para la mayoría, pero para los principiantes también puede configurarlo en un color como tal:
fuente
Si no recuerdo mal, una regla importante en la hoja de estilo para el color de fondo de las entradas anulará el autocompletado de la barra de herramientas de Google, presumiblemente lo mismo sería cierto para Chrome.
fuente