html - password - form autocomplete off




¿Cómo se desactiva el autocompletado del navegador en el campo de formulario web/etiqueta de entrada? (20)

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.

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


Así que aquí está:

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


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>

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!


A veces, incluso autocompletar = desactivado no impide rellenar las credenciales en los campos incorrectos, pero no el campo de usuario o apodo.

Esta solución es además de la publicación de apinstein sobre el comportamiento del navegador.

corrija la función de autocompletar del navegador en solo lectura y establezca la capacidad de escritura en el foco (clic y pestaña)

 <input type="password" readonly  
     onfocus="this.removeAttribute('readonly');"/>

Actualización: Mobile Safari coloca el cursor en el campo, pero no muestra el teclado virtual. New Fix funciona como antes pero maneja el teclado virtual:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Demostración en vivo https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

¿Porque el navegador rellena automáticamente las credenciales en el campo de texto incorrecto?

Noté este extraño comportamiento en Chrome y Safari, cuando hay campos de contraseña en la misma forma. Supongo que el navegador busca un campo de contraseña para insertar sus credenciales guardadas. Luego rellena automáticamente (solo adivinando debido a la observación) el campo de entrada de texto más cercano, que aparece antes del campo de contraseña en DOM. Como el navegador es la última instancia y no puedes controlarlo,

Esta solución de solo lectura anterior funcionó para mí.


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

Como han dicho otros, la respuesta es autocomplete="off"

Sin embargo, creo que vale la pena explicar por qué es una buena idea usar esto en ciertos casos, ya que algunas respuestas a esto y preguntas duplicate han sugerido que es mejor no apagarlo.

La detención de los navegadores que almacenan números de tarjetas de crédito no debe dejarse a los usuarios. Demasiados usuarios ni siquiera se darán cuenta de que es un problema.

Es particularmente importante desactivarlo en los campos para códigos de seguridad de tarjetas de crédito. Como esta página dice:

"Nunca almacene el código de seguridad ... su valor depende de la presunción de que la única forma de suministrarlo es leerlo en la tarjeta de crédito física, lo que demuestra que la persona que lo suministra posee la tarjeta".

El problema es que, si se trata de una computadora pública (cibercafé, biblioteca, etc.) es fácil para otros usuarios robar los datos de su tarjeta, e incluso en su propia máquina, un sitio web malicioso podría robar datos de autocompletado .


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.


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! "


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.


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!


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.


La mejor solucion:

Impedir autocompletar nombre de usuario (o correo electrónico) y contraseña:

<input type="email" name="email"><!-- Can be type="text" -->
<input type="password" name="password" autocomplete="new-password">

Prevenir autocompletar un campo:

<input type="text" name="field" autocomplete="nope">

Explicación: autocomplete continúa trabajando en <input> , autocomplete="off" no funciona, pero puede cambiar a una cadena aleatoria, como no.

Trabaja en:

  • Cromo: 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 y 64.

  • Firefox: 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 y 58


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.


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.


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


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...


Tres opciones: Primero:

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

Segundo:

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

Tercero (código javascript):

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

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.


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. :)







autocomplete