¿Cómo se deshabilita la función Autocompletar del navegador en el campo de formulario web / etiqueta de entrada?

¿Cómo se desactiva la función de autocompletar en los principales navegadores para una entrada específica (o campo de formulario)?

preguntado el 05 de agosto de 08 a las 14:08

En algunos sistemas donde los probadores tienen que ingresar manualmente mucha información una y otra vez, puede ser útil tener la opción como configurable para que al realizar la prueba pueda deshabilitarla y simplemente presionar 'tab> flecha hacia abajo> tab> flecha hacia abajo, etc. . '-

Trata github.com/terrylinooo/disableautofill.js , utiliza JavaScript para omitir la función de autocompletar del navegador. -

30 Respuestas

Firefox 30 ignora autocomplete="off" para las contraseñas, optando por preguntar al usuario si la contraseña debe almacenarse en el cliente. Tenga en cuenta lo siguiente comentario desde el 5 de mayo de 2014:

  • El administrador de contraseñas siempre le pregunta si quiere guardar una contraseña. Las contraseñas no se guardan sin el permiso del usuario.
  • Somos el tercer navegador en implementar este cambio, después de IE y Chrome.

Según el Mozilla Developer Network documentación, el atributo de elemento de forma booleana autocomplete evita que los datos del formulario se almacenen en caché en navegadores más antiguos.

<input type="text" name="foo" autocomplete="off" />

Respondido el 09 de enero de 21 a las 17:01

Esto no funcionó para mí en Firefox 3.0.3 Tuve que poner el atributo de autocompletar en FORM en lugar de INPUT. - Winston Fasset

El autocompletado solo se define en los estándares HTML 5, por lo que romperá cualquier validación que ejecute contra HTML 4. * ... - Jrgns

@Winston, debe ponerlo tanto en el formulario como en el elemento de entrada. De esa forma, cubrirá toda la falta de estándares de los navegadores. - Ávido

Y recuerda desactivar tu autocompletar = activado extensión (si está usando Chrome) antes de probar su aplicación web. De lo contrario, te sentirás realmente tonto como yo. ;) - Jo Liss

Además de establecer autocomplete=off, también puede hacer que los nombres de los campos de su formulario sean aleatorios por el código que genera la página, quizás 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 procesarlos en el lado del servidor. Esto evitaría que el navegador web encuentre contexto para su campo y también podría ayudar a prevenir ataques XSRF porque un atacante no podría adivinar los nombres de los campos para el envío de un formulario.

Respondido el 13 de enero de 21 a las 17:01

Esta es una solución mucho mejor en comparación con el uso de autocomplete = "off". Todo lo que tiene que hacer es generar un nuevo nombre en cada carga de página y guardar ese nombre en $ _SESSION para uso futuro: $_SESSION['codefield_name'] = md5(uniqid('auth', true)); - mejorar

No, esta no es una mejor solución, porque el origen de preferencia para esta configuración es el agente de usuario, también conocido como navegador web. Hay una diferencia entre admitir cierto comportamiento (lo que HTML 5 intenta hacer) y forzarlo decidiendo en nombre del usuario, lo que sugiere que es una "solución mucho mejor". - amén

Esta solución puede funcionar con todos los navegadores, por lo que en ese sentido es "mejor". Aún así, amn tiene razón, decidir deshabilitar la función de autocompletar en nombre de sus usuarios no es una buena idea. Esto significa que solo deshabilitaría la función de autocompletar en situaciones muy específicas, como cuando planea crear su propia funcionalidad de autocompletar y no desea conflictos o comportamientos extraños. - macguru2000

Con respecto a los ataques XSRF, no estoy seguro de qué tipo de ataque estaba imaginando, pero ¿no podría el atacante simplemente quitar la parte final de la misma manera que lo hace en el lado del servidor para identificar los campos? O si el atacante está publicando los campos, ¿no podría agregar su propia cadena aleatoria, ya que el servidor la eliminará? - xr280xr

@ macguru2000 La construcción de su propio autocompletado es un caso de uso común y completamente legítimo. Realmente, el navegador debería facilitar que los desarrolladores desactiven el autocompletado cuando lo necesiten en lugar de obligarnos a usar hacks como este. Whoadave

La mayoría de los principales navegadores y administradores de contraseñas (correctamente, en mi humilde opinión) ahora ignoran autocomplete=off.

¿Por qué? Se agregaron muchos bancos y otros sitios web de "alta seguridad" 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 cambien las contraseñas en estos sitios de alta seguridad para que sean fáciles de recordar (y por lo tanto romper) 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 están comenzando a hacer lo mismo solo para las entradas de nombre de usuario / contraseña.

Desafortunadamente, los errores en las implementaciones de autocompletar insertan información de nombre de usuario y / o contraseña en campos de formulario inapropiados, lo que causa errores de validación de formulario o, peor aún, inserta accidentalmente nombres de usuario en campos que el usuario dejó en blanco intencionalmente.

¿Qué debe hacer un desarrollador web?

  • Si puede mantener todos los campos de contraseña en una página por sí mismos, es un gran comienzo, ya que parece que la presencia de un campo de contraseña es el desencadenante principal para que se active el autocompletado de usuario / contraseña. De lo contrario, lea los consejos a continuación.
  • Safari advierte que hay 2 campos de contraseña y deshabilita la función de autocompletar en este caso, asumiendo que debe ser un formulario de cambio de contraseña, no un formulario de inicio de sesión. Así que asegúrese de usar 2 campos de contraseña (nuevo y confirmar nuevo) para cualquier formulario donde lo permita
  • Chrome 34, desafortunadamente, intentará completar automáticamente los campos con usuario / contraseña 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 autocompletado de contraseña:

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

Todavía no he investigado IE o Firefox a fondo, pero estaré encantado de actualizar la respuesta si otros tienen información en los comentarios.

Respondido el 24 de enero de 18 a las 22:01

¿Qué quiere decir con "agregar esto en su página parece deshabilitar el autocompletar para la página? wutzebaer

@wutzebaer, Chrome detecta el campo de contraseña oculta y detiene la función de autocompletar. Según se informa, esto es para evitar que el sitio robe la información de la contraseña sin que el usuario se dé cuenta. - David W

Su fragmento de código evita que se completen automáticamente los campos de inicio de sesión en Chrome, Firefox, IE 8 e IE 10. No probé IE 11. ¡Muy bien! Única respuesta simple que todavía funciona. - sam watkins

Su nota de safari parece funcionar también en Chrome, al menos a partir de diciembre de 2015. Tenía un campo de nombre de usuario y contraseña en un formulario de registro que se completaba automáticamente con los datos del formulario de inicio de sesión. Creando dos type='password' Los campos en una página hicieron que se ignorara el autocompletado de "guardar contraseña" del navegador, lo que tenía mucho sentido ya que los formularios de registro tienden a pedir la contraseña dos veces cuando los formularios de inicio de sesión solo la solicitan una vez. - Matt Fletcher

Parece que ya no funciona en Chrome 55, a menos que el campo de contraseña adicional no esté oculto, lo que anula el propósito. - bromear

A veces incluso autocompletar = desactivado se no evitar que se llene en las credenciales en campos incorrectos, pero no en el campo de usuario o sobrenombre.

Esta solución alternativa se suma a la publicación de apinstein sobre el comportamiento del navegador.

corrige el autocompletado del navegador en solo lectura y establece la escritura en el foco (haz clic y tab)

 <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();  }" />

Demo en vivo https://jsfiddle.net/danielsuess/n0scguv6/

// ActualizarFin

¿¡Porque el navegador llena automáticamente las credenciales en un campo de texto incorrecto !?

Noto este comportamiento extraño 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, llena 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 puede controlarlo,

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

Respondido el 24 de enero de 18 a las 22:01

Y si no hay javascript, todo el formulario falla. -1 - jimmy kane

@JimmyKane, la clave sería agregar también el atributo usando javascript en primer lugar (lo que dsuess no ha hecho aquí, pero solo agregando para completar). - Trnelson

@tmelson, lo entiendo, pero aún así, ¿por qué usar js incluso para deshabilitar? Evitemos js para cosas que se pueden mejorar de forma nativa. Sin embargo, de nuevo estoy de acuerdo contigo. - jimmy kane

Esto no funciona bien en IE8, el campo de contraseña de solo lectura no se puede editar la primera vez que lo enfoca, solo después de que lo desenfoca y vuelve a enfocar. Buena idea, pero desafortunadamente es un poco engañosa y no es seguro de usar. - sam watkins

Esto hace no funcionan correctamente en todos los navegadores (por ejemplo, IE 11 e IE Edge). Tan pronto como readonly se elimina, la selección posterior del campo da como resultado la devolución de autocompletar. - Codificación ido

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

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 completa automáticamente los datos si encuentra un cuadro de escriba contraseña, solo lo suficiente para indicar para esa casilla autocomplete = "new-password".

Esto funciona bien para mi.

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

respondido 05 mar '20, 12:03

Esto también funciona en Chrome para otros tipos de campos, no solo para tipo = "contraseña". - Jake

Lo usé con contraseña, correo electrónico y tipos de texto y funcionó. Lo usé simplemente así: autocomplete = "nuevo" - Crak_mboutin

autocomplete = "nope" name = "pswd" y usado antes del campo de entrada de contraseña real. Esto funcionó para mí. - Denuka

Esto funciona en casi todos los navegadores ahora, no solo en Chrome: autocompletar # Browser_compatibility. - Andrew Morton

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

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

Respondido el 06 de enero de 18 a las 06:01

Me he dado cuenta de que agregarlo al elemento del formulario no siempre evita que se aplique a las entradas individuales dentro del formulario. Por lo tanto, probablemente sea mejor colocarlo directamente en el elemento de entrada. - cantante

En realidad, @sholsinger, es mejor ponerlo tanto en el formulario como en el elemento de entrada en sí. De esa forma, cubrirá toda la falta de estándares de los navegadores. - Ávido

Lamentablemente, a partir de IE 11, Microsoft ya no respeta esto por input type="password". Es de esperar que ningún otro navegador elija eliminar esta funcionalidad. - SamHuckaby

Fijar autocomplete="off" al form es lo único que funcionó para Chrome. - Andrés

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

Sin embargo, creo que vale la pena afirmar el porqué Es una buena idea usar esto en ciertos casos como algunas respuestas a esto y duplicar Las preguntas han sugerido que es mejor no apagarlo.

No se debe dejar a los usuarios detener los navegadores que almacenan números de tarjetas de crédito. Demasiados usuarios ni siquiera se darán cuenta de que es un problema.

Es particularmente importante desactivarlo en los campos de los códigos de seguridad de las tarjetas de crédito. Como esta página establece lo siguiente:

"Nunca almacene el código de seguridad ... su valor depende de la presunción de que la única forma de suministrarlo es leerlo de la tarjeta de crédito física, probando que la persona que lo proporciona realmente tiene 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 detalles de su tarjeta, e incluso en su propia máquina, un sitio web malicioso podría robar datos de autocompletar.

Respondido el 25 de enero de 18 a las 08:01

Si fuera a un sitio y se acordara de mi tarjeta en el menú desplegable, sería muy infeliz. Empezaría a preguntarme cómo pudieron ser tan descuidados. - simon_weaver

Caso mucho más simple / más crítico. Cuando visito la página de un usuario en la parte de administración de mi sitio, intenta establecer su nombre de usuario y contraseña para que sean mi nombre de usuario y contraseña de administrador, sin poder decir que este no es un formulario de inicio de sesión. Quiero que se recuerde mi contraseña de administrador, pero es un error crítico que intente aplicar ese nombre de usuario / contraseña recordado a cualquier usuario que luego edite. - rjmunro

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

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

Espero que ayude a otras personas.

contestado el 02 de mayo de 19 a las 20:05

Esto funciona aún mejor. Puede agregar un pequeño JS que genera un código aleatorio para cada carga de página y agregar ese código al campo de entrada: function autoId(){ var autoId = ""; var dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for(var i=0; i<12; i++){ autoId += dict.charAt(Math.floor(Math.random() * dict.length)); } return autoId; } $('.autocompleteoff').attr('autocomplete', autoId()); function autoId(){ var autoId = ""; var dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzXNUMX"; for(var i=XNUMX; i<XNUMX; i++){ autoId += dict.charAt(Math.floor(Math.random() * dict.length)); } return autoId; } $('.autocompleteoff').attr('autocomplete', autoId()); Puede agregar el autocompleteoff class al campo de entrada deseado. - Raghuram Kasyap

no funciona en mi versión de Chrome 68.0.3440.106 (compilación oficial) (64 bits) - Sukanya Purushothaman

Chrome se ha corregido para utilizar el estándar "desactivado" ahora: Mack

Lamentablemente, funciona mejor que lo que se llama estándar en Chrome. Nour Lababidi

Hoy descubrí que Chrome sobrescribirá una cadena aleatoria con "Desactivado". No puedo creer que los desarrolladores de Chrome hagan mal este atributo y no lo controlen. ¿Por qué ohh mi tengo? - paso

Tendría que rogar por diferir con esas respuestas que dicen evitar deshabilitar la función de autocompletar.

Lo primero que se debe mencionar es que la función de autocompletar no está explícitamente deshabilitada en los campos del formulario de inicio de sesión es un error de PCI-DSS. Además, si la máquina local de un usuario se ve comprometida, un atacante puede obtener trivialmente cualquier dato de autocompletado debido a que está almacenado en claro.

Ciertamente, existe un argumento a favor de la usabilidad, sin embargo, hay un equilibrio muy fino cuando se trata de qué campos de formulario deben tener el autocompletado deshabilitado y cuáles no.

Respondido 23 Abr '14, 04:04

Me acaba de llamar la atención que IE no activa los eventos onChange cuando se completa una entrada de texto con Autocompletar. Tenemos docenas de formularios y más de mil eventos onChange (validaciones de entrada, lógica empresarial) esparcidos por todos ellos. Recientemente actualizamos IE a una versión más nueva y, de repente, empezaron a suceder cosas extrañas. Afortunadamente, estamos ejecutando una aplicación de intranet y el autocompletado no es un problema de UX para nosotros, es más fácil simplemente apagarlo. - robotronx

Si la máquina local de un usuario se ve comprometida, están jodidos, punto. Podría tener un keylogger instalado, podría tener un certificado raíz SSL falso agregado y todo enviado a través de un proxy falso, etc.Tengo una razón real para deshabilitar el autocompletado: cuando inicio sesión como administrador y visito la página de edición de usuario, asigna ese usuario mi nombre de usuario y contraseña de administrador. Necesito prevenir este comportamiento. - rjmunro

Los proveedores de navegadores parecen estar atentos a sus propios intereses. Contraseñas guardadas = bloqueo del usuario. Y la activación / desactivación de autocompletar era demasiado simple, ¿por qué no un estándar complejo de sugerencias semánticas ( html.spec.whatwg.org/multipage/… ) que, por cierto, permite al navegador recopilar datos semánticos valiosos de los sitios que visita cada usuario? - aro_tech

el caso de uso específico que estoy tratando de resolver es este: ya están conectados, pero ahora están a punto de acceder a algo aún más sensible. Quiero mostrarles un diálogo que les haga volver a autenticarse, ante la posibilidad de que se hayan ido a fumar y una mala persona se haya sentado en su silla. He probado varias técnicas para vencer el autocompletado y nada funciona. ahora estoy pensando, tal vez, al menos, usar la vieja 'contraseña = window.prompt ("Por favor, vuelva a ingresar su contraseña")' más el nombre de usuario en la sesión, e intente autenticar eso. - David

Tres opciones: Primero:

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

Segundo:

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

Tercero (código javascript):

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

Respondido 29 Oct 15, 21:10

La primera y la segunda opción deberían ser una opción, ya que varía según la forma en que los navegadores manejen esto. - rybo111

Intenté $ formElement.attr ('autocompletar', 'off'); y no funciona. - Ben Affleck

En una nota relacionada o en realidad, completamente opuesta:

"Si es el usuario del formulario mencionado anteriormente y desea volver a habilitar la función de autocompletar, use el marcador 'recordar contraseña' de este página de bookmarklets. Quita todo autocomplete="off" atributos de todos los formularios de la página. ¡Sigue peleando la buena batalla! "

Respondido el 06 de enero de 18 a las 07:01

Esto funciona para mí

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

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

respondido 03 mar '18, 07:03

Además de nuestras localidaded en

autocomplete="off"

Utiliza la

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

para las entradas que no desea que recuerden 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');" >

Espero que esto ayude.

contestado el 31 de mayo de 20 a las 10:05

Para mí, en IE11, no puedo escribir en el cuadro de texto incluso después de que el enfoque elimina el atributo de solo lectura. Sin embargo, si hago clic por segunda vez en el cuadro de texto, puedo escribir. - mcallahan

Me encontré con el mismo problema con IE11 (no puedo escribir hasta el segundo enfoque). Agregar un desenfoque y luego enfocar nuevamente funciona. $(document).on('focus', 'input:password[readonly="readonly"]', function () { $(this).prop('readonly', false).blur().focus(); }); - Palmsey

@Andrew Seguro que puedes. Este es el principio básico para superar este problema y también agregué una actualización que contiene un ejemplo de código completo;) - Murat Yildiz

También he añadido onfocusout="this.setAttribute('readonly', 'readonly');" - rinatdobr

Solo configurar autocomplete="off". Hay una muy buena razón para hacer esto: desea proporcionar su propia funcionalidad de autocompletar.

Respondido 01 ago 15, 11:08

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

Entonces, hicimos que la página de inicio de sesión generara nombres de campo aleatorios que solo funcionarían para esa publicación. Sí, es menos conveniente, pero al usuario le cuesta mucho no almacenar la información de inicio de sesión en terminales públicas.

Respondido el 16 de Septiembre de 08 a las 16:09

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

Finalmente descubrí un solución HTML pura eso requiere sin Javascript, funciona en navegadores modernos (excepto IE; tenía que al menos 1 captura, ¿verdad?), y no requiere que desactive la función de autocompletar para todo el formulario.

Simplemente apague la función de autocompletar en el form y luego enciéndalo para cualquier input desea 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>

Respondido 15 ago 13, 20:08

He estado probando infinitas soluciones y luego encontré esto:

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

Tan simple como eso, ¡y también funciona a las mil maravillas en Google Chrome!

Respondido 01 ago 15, 11:08

Como dijiste en Chrome, el valor de apagado no funciona. Tiene que ser "falso" - azuax

Me funciona en Chrome 44.0.2403.130. - guigs

Intenté esto: $ formElement.attr ('autocomplete', 'false'); lo siento no funciona. - Ben Affleck

Creo que el autocomplete=off es compatible con HTML 5.

Sin embargo, pregúntese por qué quiere hacer esto; puede tener sentido en algunas situaciones, pero no lo haga por el simple hecho de 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 le roben las contraseñas a las personas de forma remota, un registrador de pulsaciones de teclas podría hacerlo aunque su aplicación utilice autcomplete=off.

Como usuario que elige que un navegador recuerde (la mayor parte de) mi información, me resultaría molesto que su sitio no recordara la mía.

Respondido 02 ago 12, 02:08

La mejor solucion:

Evite el autocompletado de 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">

Evitar autocompletar un campo:

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

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

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

respondido 20 mar '18, 04:03

Encontré que esto funcionaba en mis pruebas preliminares. Tan extraño que "off" no funciona. - craig jacobs

Esto no funciona para Chrome en Android. Intenté establecer valores de cadena para el autocomplete atributo y todavía muestra las entradas anteriores como sugerencias de autocompletar debajo de la entrada. - tebs1200

@ tebs1200 ¿Cuál? ¿El campo de contraseña o el campo de texto? - Cava

@Cava perdón por la demora en la respuesta. El campo de texto. No importa el valor que establezca autocomplete a, todavía obtengo un menú desplegable de sugerencias basado en valores ingresados ​​previamente. Está bien en el escritorio, pero no en Chrome de Android. - tebs1200

Adición autocomplete="off" no lo va a cortar.

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

Respondido 28 Oct 15, 16:10

Es un truco. El campo no es un campo de búsqueda. En el futuro, esto podría causar problemas. - Roel

Utilice un nombre y una identificación no estándar para los campos, de modo que en lugar de "nombre" tenga "nombre_". Los navegadores no lo verán como el campo de nombre. La mejor parte es que puede hacer esto en algunos campos, pero no en todos, y completará automáticamente algunos pero no todos los campos.

Respondido 05 ago 08, 17:08

El problema con esto es que si otros sitios usan "name_" para lograr el mismo objetivo, entonces estás de vuelta al punto de partida. - ConroyP

así que conviértalo en "nombre_misitio". Si alguien más está usando eso, le haría preguntas ... - Beneficios de Steve

esto estropea algunas de esas utilidades de llenado automático - simon_weaver

Un poco tarde para el juego ... pero me encontré con este problema e intenté varios fallos, pero este funciona para mí encontrado en DND

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

autocomplete="nope"

respondido 22 mar '16, 19:03

Añadiendo el

autocomplete="off"

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

Probado en:

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

Respondido 02 ago 12, 10:08

Para evitar el XHTML no válido, puede establecer este atributo usando 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.

Respondido el 12 de diciembre de 10 a las 18:12

esto no evita xhtml inválido, simplemente agrega el bit inválido dinámicamente después de que lo haya verificado y lo declaró válido. - Andiih

@Andiih: Entonces, ¿hay alguna manera de hacer que el autocompletado funcione en xhtml? - Cherouvim

Trabajar (o dejar de funcionar, que es el objetivo): sí como arriba. Pero válido, no. - Andiih

Así que aquí está:

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

Respondido 20 Jul 17, 18:07

Parece una buena idea diseñar los cuadros de texto para evitar que parpadeen las contraseñas visibles. - Andrés

Muchas gracias, esto hizo el trabajo +1, mi variación a su solución fue hacerlo por una sola línea: - Hasnaa Ibrahim

@HasnaaIbraheem Gracias (: a veces, más legible es mejor. - Stav Bodik

Este es un problema de seguridad que los navegadores ignoran ahora. Los navegadores identifican y almacenan contenido utilizando nombres de entrada, incluso si los desarrolladores consideran que la información es confidencial y no debe almacenarse.

Hacer un nombre de entrada diferente entre 2 solicitudes resolverá el problema (pero aún se guardará en la caché del navegador y también aumentará la caché del navegador).

Pedir al usuario que active o desactive opciones en la configuración de su navegador no es una buena solución. El problema se puede solucionar en el backend.

Aquí está la solución. Todos los elementos de autocompletar se generan con una entrada oculta como esta:

<?php $r = md5(rand() . microtime(TRUE)); ?>
<form method="POST" action="./">
    <input type="text" name="<?php echo $r; ?>" />
    <input type="hidden" name="__autocomplete_fix_<?php echo $r; ?>" value="username" />
    <input type="submit" name="submit" value="submit" />
</form>

El servidor luego procesa las variables de publicación de esta manera: (Demo)

foreach ($_POST as $key => $val) {
    $newKey = preg_replace('~^__autocomplete_fix_~', '', $key, 1, $count);
    if ($count) {
        $_POST[$val] = $_POST[$newKey];
        unset($_POST[$key], $_POST[$newKey]);
    }
}

Se puede acceder al valor como de costumbre

echo $_POST['username'];

Y el navegador no podrá sugerir información de la solicitud anterior o de usuarios anteriores.

Esto seguirá funcionando incluso si los navegadores actualizan sus técnicas para ignorar / respetar los atributos de autocompletar.

Respondido 28 ago 20, 06:08

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

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

Respondido el 04 de diciembre de 12 a las 18:12

autoComplete para React ... $ 0.02 - Neil Guy Lindberg

No puedo creer que esto siga siendo un problema mucho tiempo después de que se informó. Las soluciones anteriores no funcionaron para mí, ya que Safari parecía saber cuándo el elemento no se mostraba o estaba fuera de la pantalla, sin embargo, lo siguiente sí 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!

Respondido 23 Abr '16, 12:04

Entonces, ¿poner esto antes de los campos de nombre de usuario y contraseña reales funcionó? el navegador los llenó y no los reales - Andrés

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

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

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

Respondido 02 Jul 15, 11:07

Tenga en cuenta que, al utilizar esta técnica, FireFox seguirá llenando automáticamente ese campo oculto, que se incluirá al enviar el formulario. Eso probablemente sería malo, ya que la contraseña se transferiría a través de una conexión potencialmente no segura. Afortunadamente agregando maxlength="0" evita que Firefox rellene automáticamente el campo. - Mikal Schacht Jensen

Puede utilizar en entrada.

Por ejemplo;

<input type=text name="test" autocomplete="off" />

respondido 02 nov., 12:17

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.