html password ¿Cómo se desactiva el autocompletado del navegador en el campo de formulario web/etiqueta de entrada?




form autocomplete off (24)

Tres opciones: Primero:

<input type='text' autocomplete='off' />

Segundo:

<form action='' autocomplete='off'>

Tercero (código javascript):

$('input').attr('autocomplete', 'off');

¿Cómo se desactiva el autocomplete en los principales navegadores para una input específica (o form field )?


En una nota relacionada o en realidad, en la nota completamente opuesta -

"Si usted es el usuario del formulario mencionado anteriormente y desea volver a habilitar la funcionalidad de autocompletar, use el marcador de" recordar contraseña "de esta página de bookmarklets . Quita todos los atributos autocomplete="off" de todos los formularios de la página. Mantener luchando la buena pelea! "


Ninguna de las soluciones me funcionó en esta conversación.

Finalmente, descubrí una solución HTML pura que no requiere Javascript , funciona en los navegadores modernos (excepto IE; tenía al menos 1 captura, ¿no?), Y no requiere que desactives la función de autocompletar para todo el formulario.

Simplemente desactive la función autocompletar en el form y luego enciéndalo para cualquier input que desee que funcione dentro del formulario. Por ejemplo:

<form autocomplete="off">
    <!-- these inputs will not allow autocomplete and chrome 
         won't highlight them yellow! -->
    <input name="username"  />
    <input name="password" type="password" />
    <!-- this field will allow autocomplete to work even 
         though we've disabled it on the form -->
    <input name="another_field" autocomplete="on" />
</form>

Tratar de agregar

readonly onfocus = "this.removeAttribute ('readonly');"

además de

autocompletar = "apagado"

a la (s) entrada (s) que no desea recordar los datos del formulario ( username , password , etc.) como se muestra a continuación:

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >


Actualización: el siguiente ejemplo completo se basa en este enfoque que evita arrastrar y soltar , copiar , pegar , etc.

<input type="text" name="UserName" style="text-transform:lowercase;" placeholder="Username" 
    autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" 
    oncopy="return false" ondrag="return false" ondrop="return false" 
    onpaste="return false" oncontextmenu="return false" > 

<input type="password" name="Password" placeholder="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" oncopy="return false" ondrag="return false" 
    ondrop="return false" onpaste="return false" oncontextmenu="return false" >

Probado en las últimas versiones de los principales navegadores, es decir, Google Chrome , Mozilla Firefox , Microsoft Edge , etc. y funciona sin problemas. Espero que esto ayude...


Esto funciona para mi

<input name="pass" type="password" autocomplete="new-password" />

También podemos usar esta estrategia en otros controles como texto, selección, etc.


No puedo creer que esto siga siendo un problema mucho después de que se haya informado. Las soluciones anteriores no funcionaron para mí, ya que el safari parecía saber cuándo el elemento no se mostraba o estaba fuera de la pantalla, sin embargo, lo siguiente funcionó para mí:

<div style="height:0px; overflow:hidden; ">
  Username <input type="text" name="fake_safari_username" >
  Password <input type="password" name="fake_safari_password">
</div>

Espero que sea útil para alguien!


Creo que autocomplete=off es compatible con HTML 5.

No obstante, pregúntese por qué quiere hacer esto; puede tener sentido en algunas situaciones, pero no lo haga solo por hacerlo.

Es menos conveniente para los usuarios y ni siquiera es un problema de seguridad en OS X (mencionado por Soren a continuación). Si le preocupa que a las personas se les roben las contraseñas de forma remota, un registrador de pulsaciones de teclas aún podría hacerlo aunque su aplicación use autcomplete=off .

Como usuario que elige tener un navegador para recordar (la mayoría de) mi información, me resultaría molesto si su sitio no recordara el mío.


Con el fin de evitar el XHTML no válido, puede establecer este atributo utilizando javascript. Ejemplo usando jQuery:

<input type="text" class="noAutoComplete" ... />

$(function() {
    $('.noAutoComplete').attr('autocomplete', 'off');
});

El problema es que los usuarios sin javascript obtendrán la funcionalidad de autocompletar.


Utilice un nombre y una ID no estándar para los campos, así que en lugar de "nombre" tiene "nombre_". Los navegadores entonces no lo verán como el campo de nombre. La mejor parte de esto es que puede hacer esto en algunos campos, pero no en todos, y autocompletará algunos campos, pero no todos.


Agregar autocomplete="off" no lo va a cortar.

Cambiar el atributo de tipo de entrada a type="search" .
Google no aplica el relleno automático a las entradas con un tipo de búsqueda.


Ninguno de los trucos mencionados aquí me funcionó en Chrome. Aquí hay una discusión del problema: https://code.google.com/p/chromium/issues/detail?id=468153#c41

Añadiendo esto dentro de una <form> obra (al menos por ahora):

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>

Simplemente configura autocomplete="off" . Hay una muy buena razón para hacer esto: ¡Desea proporcionar su propia funcionalidad de autocompletar!


Realmente usamos la idea de sasb para un sitio. Era una aplicación web de software médico para dirigir un consultorio médico. Sin embargo, muchos de nuestros clientes eran cirujanos que usaban muchas estaciones de trabajo diferentes, incluidas las terminales semipúblicas. Por lo tanto, querían asegurarse de que un médico que no comprende las implicaciones de las contraseñas guardadas automáticamente o que no está prestando atención no pueda dejar su información de inicio de sesión accidentalmente accesible. Por supuesto, esto fue antes de la idea de la navegación privada que comienza a aparecer en IE8, FF3.1, etc. Aun así, muchos médicos se ven obligados a usar navegadores de escuelas antiguas en hospitales con TI que no cambiarán.

Entonces, la página de inicio de sesión generó nombres de campos aleatorios que solo funcionarían para esa publicación. Sí, es menos conveniente, pero solo está afectando al usuario por no almacenar información de inicio de sesión en terminales públicos.


Además de autocomplete=off , también puede hacer que los nombres de los campos de su formulario sean aleatorizados por el código que genera la página, tal vez agregando alguna cadena específica de la sesión al final de los nombres.

Cuando se envía el formulario, puede quitar esa parte antes de procesarla en el lado del servidor. Esto evitaría que el navegador web encuentre un contexto para su campo y también podría ayudar a prevenir ataques XSRF porque un atacante no podría adivinar los nombres de campo para un envío de formulario.


Un poco tarde para el juego ... pero me encontré con este problema e intenté varias fallas, pero esta me funciona en MDN

En algunos casos, el navegador seguirá sugiriendo valores de autocompletado, incluso si el atributo autocompletar está desactivado. Este comportamiento inesperado puede ser bastante desconcertante para los desarrolladores. El truco para forzar realmente la no finalización es asignar una cadena aleatoria al atributo de esta manera:

autocomplete="nope"

Añadiendo el

autocomplete="off"

La etiqueta de formulario deshabilitará el autocompletado del navegador (lo que se escribió anteriormente en ese campo) de todos input campos de input dentro de ese formulario en particular.

Probado en:

  • Firefox 3.5, 4 BETA
  • Internet Explorer 8
  • Cromo

La mayoría de los principales navegadores y administradores de contraseñas (correctamente, IMHO) ahora ignoran autocomplete=off .

¿Por qué? Muchos bancos y otros sitios web de "alta seguridad" agregaron autocomplete=off a sus páginas de inicio de sesión "por motivos de seguridad", pero esto en realidad disminuye la seguridad, ya que hace que las personas que cambian las contraseñas en estos sitios de alta seguridad sean fáciles de recordar (y, por lo tanto, de crack). ) ya que el autocompletado se rompió.

Hace mucho tiempo, la mayoría de los administradores de contraseñas comenzaron a ignorar autocomplete=off , y ahora los navegadores comienzan a hacer lo mismo solo para las entradas de nombre de usuario / contraseña.

Desafortunadamente, los errores en las implementaciones de autocompletado insertan información de nombre de usuario y / o contraseña en campos de formulario inapropiados, causando errores de validación de formularios, o peor aún, insertando nombres de usuario en campos que el usuario dejó intencionalmente en blanco.

¿Qué debe hacer un desarrollador web?

  • Si puede mantener todos los campos de contraseña en una página por sí mismos, eso es un gran comienzo, ya que parece que la presencia de un campo de contraseña es el principal desencadenante para que el usuario / pase el autocompletado inicie. De lo contrario, lea los consejos a continuación.
  • Safari advierte que hay 2 campos de contraseña y desactiva el autocompletado en este caso, asumiendo que debe ser un formulario de cambio de contraseña, no un formulario de inicio de sesión. Tan solo asegúrese de usar 2 campos de contraseña (nuevo y confirmar nuevo) para cualquier formulario donde permita
  • Chrome 34, desafortunadamente, intentará autocompletar campos con usuario / pasar cada vez que vea un campo de contraseña. Este es un error bastante grave que, con suerte, cambiará el comportamiento de Safari. Sin embargo, agregar esto en la parte superior de su formulario parece deshabilitar el llenado automático de la contraseña:

    <input type="text" style="display:none">
    <input type="password" style="display:none">

Todavía no he investigado a fondo IE o Firefox pero me complacerá actualizar la respuesta si otros tienen información en los comentarios.


Era una forma no estándar de hacer esto (creo que Mozilla e Internet Explorer aún lo admiten), pero meterse con las expectativas de los usuarios es una mala idea.

Si el usuario ingresa los detalles de su tarjeta de crédito en un formulario y luego deja que otra persona use ese navegador, no es su problema. :)


Así que aquí está:

function turnOnPasswordStyle() {
  $('#inputpassword').attr('type', "password");
}
<input oninput="turnOnPasswordStyle()" id="inputpassword" type="text">


<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Esto funcionará en Internet Explorer y Mozilla FireFox, el inconveniente es que no es el estándar XHTML.


prueba estos también si simplemente autocomplete="off" no funciona:

autocorrect="off" autocapitalize="off" autocomplete="off"

La solución para Chrome es agregar autocomplete="new-password" a la contraseña de tipo de entrada.

Ejemplo:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome siempre autocompleta los datos si encuentra un cuadro de tipo de contraseña , lo suficiente como para indicar para ese cuadro autocomplete = "new-password" .

Esto funciona bien para mi.

Nota: asegúrese de que con los cambios en F12 surtan efecto, muchas veces los navegadores guardan la página en caché, esto me dio una mala impresión de que no funcionó, pero el navegador no trajo los cambios.


He resuelto la interminable lucha con Google Chrome con el uso de caracteres aleatorios. Cuando siempre se procesa automáticamente con una cadena aleatoria, nunca recordará nada.

<input name="name" type="text" autocomplete="rutjfkde">

Espero que ayude a otras personas.


He estado intentando soluciones sin fin, y luego encontré esto:

En lugar de autocomplete="off" simplemente use autocomplete="false"

¡Tan simple como eso, y también funciona como un encanto en Google Chrome!





autocomplete