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

votos
2k

¿Cómo se desactiva autocompleteen los navegadores principales para un input(o form field) específico ?

Publicado el 05/08/2008 a las 17:22
fuente por usuario
En otros idiomas...                            


61 respuestas

votos
2k

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

  • El administrador de contraseñas siempre 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.

De acuerdo con la documentación del desarrollador de Mozilla, el atributo de elemento de autocompleteformulario evita que los datos del formulario se guarden en caché en navegadores más antiguos.

<input type="text" name="foo" autocomplete="off" />
Respondida el 05/08/2008 a las 17:24
fuente por usuario

votos
237

Además autocomplete=off, también puede hacer que los nombres de los campos de sus formularios sean aleatorizados 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 campo para un envío de formulario.

Respondida el 20/10/2008 a las 14:36
fuente por usuario

votos
181

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

¿Por qué? Muchos bancos y otros sitios web de "alta seguridad", agregó autocomplete=offa sus páginas de inicio de sesión "por motivos de seguridad", pero esto en realidad disminuye la seguridad, ya que hace que la gente a cambiar las contraseñas en estos sitios de alta seguridad para ser fácil de recordar (y por lo tanto crack) desde autocompletar estaba rota.

Hace mucho tiempo, la mayoría de los gestores de contraseña comenzaron a ignorar autocomplete=off, y ahora los navegadores están empezando a hacer lo mismo para las entradas de usuario / contraseña solamente.

Desafortunadamente, los errores en las implementaciones de autocompletar insertar nombre de usuario y / o información de contraseña en los campos de formulario inapropiados, causando errores de validación de formularios, o peor aún, accidentalmente insertar los nombres de usuario en los campos que fueron dejados en blanco intencionalmente por el usuario.

¿Qué es un desarrollador web para hacer?

  • Si usted 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 detonante de usuario / autocompletar a surtir efecto. De lo contrario, lee los consejos a continuación.
  • Safari se da cuenta de que hay 2 campos de contraseña y desactiva autocompletar en este caso, suponiendo que debe ser una forma de cambio de contraseña, no un formulario de acceso. Por lo que sólo asegúrese de usar 2 campos de contraseña (nueva y confirma la nueva) de cualquier forma en la que permiten
  • Chrome 34, por desgracia, intentará autocompletar campos con el usuario / contraseña cada vez que ve un campo de contraseña. Este es un mal bicho que se espera, que va a cambiar el comportamiento de Safari. Sin embargo, la adición de este a la parte superior de su forma parece desactivar el relleno automático de 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 estaremos encantados de actualizar la respuesta si los demás tienen información en los comentarios.

Respondida el 23/04/2014 a las 05:00
fuente por usuario

votos
116

A veces incluso autocomplete = off sería no impide llenar de credenciales en los campos erróneos, pero no campo de usuario o apodo.

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

fix navegador relleno automático de sólo lectura y de escritura en el enfoque establecido (y haga clic en la ficha)

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

Actualización: Mobile Safari establece cursor en el campo, pero no muestra el teclado virtual. Nuevo arreglo funciona como antes, pero se encarga de 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

Debido a Navegador auto llena credenciales al campo de texto mal !?

Me he dado cuenta este comportamiento extraño en Chrome y Safari, cuando hay campos de contraseña en la misma forma. Supongo, el navegador busca un campo de contraseña para insertar sus credenciales guardadas. A continuación, se llena de automóviles (sólo una suposición debido a la observación) el campo cercano textlike-entrada, que aparece antes del campo de la contraseña en el DOM. A medida que el navegador es la última instancia y no se puede controlar,

Esto sólo lectura-FIX anteriormente trabajó para mí.

Respondida el 16/06/2014 a las 17:04
fuente por usuario

votos
94
<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 un estándar XHTML.

Respondida el 05/08/2008 a las 17:27
fuente por usuario

votos
54

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

Sin embargo, creo que vale la pena mencionar por qué es una buena idea usar esto en ciertos casos, ya que algunas respuestas a esto y las preguntas duplicadas sugieren que es mejor no desactivarlo.

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

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

"Nunca guarde el código de seguridad ... su valor depende de la presunción de que la única forma de suministrarlo es leerlo desde la tarjeta de crédito física, lo que demuestra que la persona que lo suministra realmente 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 .

Respondida el 23/01/2009 a las 22:21
fuente por usuario

votos
50

La solución para Chrome es añadir autocomplete="new-password" a la contraseña del 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 autocompletar los datos si se encuentra una caja de tipo de contraseña , sólo lo suficiente para indicar de ese cuadro autocomplete = "new-password".

Esto funciona bien para mi.

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

Respondida el 24/11/2016 a las 14:07
fuente por usuario

votos
29

Tendría que discrepar con esas respuestas que dicen para evitar la desactivación de la función de autocompletar.

El primero que hay que plantear es que la función de autocompletar no estar inhabilitado explícitamente en los campos de formulario de inicio de sesión es una tarjeta PCI-DSS falle. Además, si la máquina local de un usuario se ve comprometida a continuación, todos los datos de autocompletar se pueden trivialmente obtienen por un atacante debido a que se almacena en la clara.

Sin duda hay un argumento para la facilidad de uso, sin embargo hay un equilibrio muy fino cuando se trata de lo que los campos del formulario deben tener autocompletar discapacitados y cuáles no.

Respondida el 17/09/2011 a las 01:33
fuente por usuario

votos
24

Hay tres opciones: Primero:

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

Segundo:

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

En tercer lugar (código javascript):

$('input').attr('autocomplete', 'off');
Respondida el 19/03/2013 a las 11:05
fuente por usuario

votos
18

He estado tratando de soluciones sin fin, y luego me encontré con esto:

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

Tan simple como eso, y funciona como un encanto en Google Chrome, así!

Respondida el 01/05/2015 a las 05:56
fuente por usuario

votos
17

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

Respondida el 05/08/2008 a las 17:32
fuente por usuario

votos
16

Ninguna de las soluciones que funcionó para mí en esta conversación.

Finalmente encontrado una solución HTML puro que requiere sin Javascript , funciona en los navegadores modernos (excepto IE; tenía que al menos 1 de captura, ¿verdad?), Y no requiere que desactivar autocompletar para todo el formulario.

Sólo tiene que apagar autocompletar en el formy luego vuelva a encenderlo para cualquier inputque desea que funcione dentro de la forma. 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>
Respondida el 15/08/2013 a las 20:02
fuente por usuario

votos
16

Creo que autocomplete=offestá apoyado en HTML 5.

Pregúntese por qué quiere hacer esto sin embargo - puede tener sentido en algunas situaciones, pero no hacerlo por el simple hecho de hacerlo.

Es menos conveniente para los usuarios y ni siquiera un problema de seguridad en OS X (mencionado por Soren abajo). Si usted está preocupado acerca de las personas que tienen sus contraseñas robadas de forma remota - un registrador de teclas todavía podía hacerlo a pesar de que su aplicación utiliza autcomplete=off.

Como un usuario que decide tener un navegador recuerde (la mayoría de) mi información, me parece que es molesto si su sitio no recordaba la mía.

Respondida el 24/02/2011 a las 00:24
fuente por usuario

votos
16

Realmente usamos la idea de sasb para un sitio. Era una aplicación web de software médico para administrar un consultorio 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 entiende la implicación de las contraseñas guardadas automáticamente o que no está prestando atención no pueda dejar su información de acceso de forma accidental 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 los hospitales con tecnología informática que no cambiará.

Entonces, tuvimos la página de inicio de sesión generando nombres de campo aleatorios que solo funcionarían para esa publicación. Sí, es menos conveniente, pero solo le da al usuario la cabeza por no almacenar la información de inicio de sesión en las terminales públicas.

Respondida el 16/09/2008 a las 16:35
fuente por usuario

votos
16

En un relacionado o en realidad, en la nota completamente opuesta -

"Si usted es el usuario del formulario antes mencionado y desea volver a habilitar la funcionalidad de autocompletar, use el marcador 'recordar contraseña' de esta página de marcadores . Elimina todos los autocomplete="off"atributos de todos los formularios de la página. ¡Siga luchando la buena batalla! "

Respondida el 08/09/2008 a las 20:29
fuente por usuario

votos
13

Era una forma no estándar de hacer esto (creo que Mozilla e Internet Explorer todavía lo admiten), pero jugar 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 asunto suyo. :)

Respondida el 05/08/2008 a las 17:26
fuente por usuario

votos
10

la adición de la

autocomplete="off"

a la etiqueta de formulario deshabilitará la función de autocompletar del navegador (lo que se ha escrito previamente en ese campo) de todos los inputcampos dentro de esa forma particular.

Probado en:

  • Firefox 3.5, 4 BETA
  • Internet Explorer 8
  • Cromo
Respondida el 11/02/2011 a las 06:14
fuente por usuario

votos
9

Añadiendo autocomplete="off"que no se va a cortar.

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

Respondida el 28/10/2015 a las 13:32
fuente por usuario

votos
9

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

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

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

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

Respondida el 12/12/2010 a las 19:34
fuente por usuario

votos
8

No puedo creer que esto sigue siendo un problema tanto tiempo después de que se ha informado. Las soluciones anteriores no funcionaron para mí, como Safari parecía saber cuando el elemento no se visualiza o fuera de la pantalla, sin embargo, el siguiente trabajo 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!

Respondida el 23/04/2016 a las 08:02
fuente por usuario

votos
8

Un poco tarde al juego ... pero me acabo de encontrar con este problema y probado varios fallos, pero éste funciona para mí encontré en MDN

En algunos casos, el navegador mantendrá sugiriendo valores de autocompletar incluso si el atributo autocomplete está desactivada. Este comportamiento inesperado puede ser muy desconcertante para los desarrolladores. El truco para forzar realmente la no-realización es asignar una cadena aleatoria al atributo de este modo:

autocomplete="nope"
Respondida el 22/03/2016 a las 16:38
fuente por usuario

votos
8

Se trata de un problema de seguridad que los navegadores ignoran ahora. Navegadores identificar y almacena contenido utilizando nombres de entrada, incluso si los desarrolladores consideran que la información es sensible y no deben ser almacenados. Cómo hacer una entrada de nombre diferente entre 2 peticiones va a resolver el problema (pero todavía será guardado en la memoria caché del navegador y también aumentará la caché del navegador). Preguntar al usuario para activar o desactivar opciones en la configuración de su navegador no es una buena solución. El problema puede ser fijado en el backend.

Aquí está mi solución. Un enfoque que he implementado en mi marco. Todos los elementos de autocompletar se generan con una entrada oculta de esta manera:

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

Servidor entonces colocar las variables proceso como este:

foreach ($_POST as $key => $val)
{
    if(preg_match('#^__autocomplete_fix_#', $key) === 1){
        $n = substr($key, 19);
        if(isset($_POST[$n]))$_POST[$val] = $_POST[$n];
    }
}

El valor se puede acceder como de costumbre

var_dump($_POST['username']);

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

Todos los trabajos como un encanto, incluso si las actualizaciones de los navegadores, quieren hacer caso omiso de autocompletar o no. Esa ha sido la mejor manera de solucionar el problema para mí.

Respondida el 02/06/2015 a las 20:37
fuente por usuario

votos
8

Intentar también con éstos si simplemente autocomplete="off"no funciona:

autocorrect="off" autocapitalize="off" autocomplete="off"
Respondida el 04/12/2012 a las 19:24
fuente por usuario

votos
8

Use 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 de esto es que puedes hacer esto en algunos, pero no en todos los campos, y completará automáticamente algunos, pero no todos, los campos.

Respondida el 05/08/2008 a las 17:27
fuente por usuario

votos
7

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

La adición de este dentro de una <form>obra (al menos por ahora):

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>
Respondida el 02/07/2015 a las 10:40
fuente por usuario

votos
6

La mejor solucion:

Prevenir nombre de usuario autocompletar (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: autocompletecontinúa trabajando en el <input>, autocomplete="off"no funciona, pero se puede cambiar offa una cadena aleatoria, al igual que nope.

Trabaja en:

  • Chrome: 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

Respondida el 20/03/2018 a las 01:31
fuente por usuario

votos
6

Trate de añadir

onfocus de sólo lectura = "this.removeAttribute ( 'sólo lectura');"

además de

autocomplete = "off"

a la entrada (s) que no quiere 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');" >

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

Respondida el 01/11/2017 a las 10:26
fuente por usuario

votos
6

Esto funciona para mí.

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

También podemos utilizar esta estrategia en otros controles como texto, seleccionamos etc.

Respondida el 30/12/2016 a las 12:05
fuente por usuario

votos
5

Así que aquí es:

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

Respondida el 29/05/2016 a las 16:57
fuente por usuario

votos
5

Es posible utilizar en la entrada.

Por ejemplo;

<input type=text name="test" autocomplete="off" />
Respondida el 02/11/2012 a las 18:00
fuente por usuario

votos
4

Simplemente puede poner el autocomplete="off"en los campos HTML como código siguiente.

<input type="text" name="" value="" autocomplete="off" />
Respondida el 12/05/2016 a las 07:53
fuente por usuario

votos
4

Puede desactivar la función de autocompletar si se quita la formetiqueta, se hizo lo mismo por mi banco y me preguntaba cómo lo hicieron. Incluso se retire el valor que ya fue recordado por el navegador después de quitar la etiqueta.

Respondida el 25/02/2016 a las 12:27
fuente por usuario

votos
4

Chrome está planeando apoyar esta .

Por ahora la mejor sugerencia es utilizar un tipo de entrada que rara vez se autocompletar.

discusión de cromo

<input type='search' name="whatever" />

para ser compatible con Firefox, utilice autocompletar normal = 'off'

<input type='search' name="whatever" autocomplete='off' />
Respondida el 09/12/2015 a las 23:21
fuente por usuario

votos
3

Muchos navegadores modernos no son compatibles con autocomplete = "off" para los campos de inicio de sesión más. autocomplete="new-password"se wokring lugar, más información documentos MDN

Respondida el 21/12/2017 a las 01:33
fuente por usuario

votos
3

Yo uso este TextMode="password" autocomplete="new-password"y en la carga de la página en aspxtxtPassword.Attributes.Add("value", '');

Respondida el 14/03/2017 a las 06:35
fuente por usuario

votos
3

Mi problema era sobre todo de relleno automático con Chrome, pero creo que esto es probablemente más problemática que autocompletar.

Truco: el uso de un temporizador para restablecer la forma y establecer campos de contraseña en blanco. La duración de 100 ms parece ser mínimo para que funcione.

$(document).ready(function() {
    setTimeout(function() {
        var $form = $('#formId');
        $form[0].reset();
        $form.find('INPUT[type=password]').val('');
    }, 100);
});
Respondida el 12/07/2016 a las 12:29
fuente por usuario

votos
3

La respuesta dsuess publicado con el sólo lectura era muy inteligente y trabajaba. Pero como yo estoy usando boostrap, el campo de entrada de sólo lectura fue - hasta que se centró - marcado con fondo gris. Mientras se carga el documento, puede engañar al navegador simplemente bloquear y desbloquear la entrada.

Así que tuve una idea para implementar esta solución en jQuery:

    jQuery(document).ready(function () {
        $("input").attr('readonly', true);
        $("input").removeAttr('readonly');
   });
Respondida el 16/06/2016 a las 07:43
fuente por usuario

votos
3

Si el problema es tener un campo de contraseña de ser auto-completado, entonces puede resultar útil ...

Hemos tenido este problema en varias áreas de nuestro sitio donde el negocio quería volver a solicitar al usuario su nombre de usuario y contraseña y, específicamente, no quería que el relleno automático de contraseña para trabajar por razones contractuales. Hemos encontrado que la manera más fácil de hacer esto es poner en un campo de contraseña falsa para el navegador para encontrar y llenar mientras que el campo de la contraseña real permanece intacto.

<!-- This is a fake password input to defeat the browser's autofill behavior -->
<input type="password" id="txtPassword" style="display:none;" />
<!-- This is the real password input -->
<input type="password" id="txtThisIsTheRealPassword" />

Tenga en cuenta que en Firefox e IE, simplemente era suficiente para poner cualquier entrada del tipo de contraseña antes de la real, pero Chrome vio a través de eso y me obligó a nombrar realidad la introducción de la contraseña falsa (dándole un id contraseña obvia) para conseguir que se "mordedura". He utilizado una clase para implementar el estilo en lugar de utilizar un estilo incrustado así que intenta que si lo anterior no funciona por alguna razón.

Respondida el 27/04/2016 a las 17:44
fuente por usuario

votos
3

Esto es lo que llamamos autocompletar de un cuadro de texto. introducir descripción de la imagen aquí Podemos desactivar la función de autocompletar de un cuadro de texto en 2 maneras-

  1. Por Navegador de etiquetas
  2. por Estado

    Para desactivar en el navegador ir a la configuración

    Para dissable Explorar ir a la configuración

Ir a avanzar en el establecimiento y desactive la casilla de verificación y luego en Restaurar.

Ir a avanzar en el establecimiento y desactive la casilla de verificación y luego en Restaurar.

Si desea desactivar la etiqueta de codificación que puede hacer como seguimiento
Usando AutoCompleteType="Disabled":

<asp:TextBox runat="server" ID="txt_userid" AutoCompleteType="Disabled"></asp:TextBox>  

Mediante el establecimiento de la Forma autocomplete="off":

<asp:TextBox runat="server" ID="txt_userid" autocomplete="off"></asp:TextBox> 

Mediante el establecimiento de la Forma autocomplete="off":

<form id="form1" runat="server" autocomplete="off">  
    //your content
</form>  

Mediante el uso de código en la página .cs

protected void Page_Load(object sender, EventArgs e)  
    {  
    if(!Page.IsPostBack)  
    {  


        txt_userid.Attributes.Add("autocomplete", "off");  

    }  
}  

Por usando jQuery

head runat="server">  
<title></title>  
<script src="Scripts/jquery-1.6.4.min.js"></script>  
<script type="text/javascript">  
    $(document).ready(function () {  
        $('#txt_userid').attr('autocomplete', 'off');  

    });  

</script>  
Respondida el 19/03/2016 a las 02:05
fuente por usuario

votos
3
<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        try {
            $("input[type='text']").each(function(){
                           $(this).attr("autocomplete","off");
                        });
        }
        catch (e)
        { }
    });

</script>
Respondida el 16/11/2015 a las 10:02
fuente por usuario

votos
2

He resuelto la lucha sin fin con Google Chrome con el uso de caracteres aleatorios.

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

La esperanza de que ayudará a otras personas.

Respondida el 04/08/2018 a las 14:22
fuente por usuario

votos
2

Google Chrome ignora el autocomplete="off"atributo de ciertos insumos, incluidos los insumos de contraseña y entradas comunes detectados por su nombre.

Por ejemplo, si tiene una entrada con el nombre address, a continuación, Chrome proporcionará sugerencias de llenado automático de las direcciones introducidas en otros sitios, incluso si no se diga :

<input type="string" name="address" autocomplete="off">

Si no quieres que Chrome para hacer eso, entonces se puede cambiar el nombre o espacio de nombres del campo de formulario:

<input type="string" name="mysite_addr" autocomplete="off">

Si no te importa los valores que se hayan declarado previamente en su sitio de autocompletar, entonces se puede salir de autocompletar habilitado. Namespacing el nombre del campo debe ser suficiente para evitar que los valores recordados de otros sitios aparezcan.

<input type="string" name="mysite_addr" autocomplete="on">
Respondida el 22/06/2018 a las 06:10
fuente por usuario

votos
2

No parece ser posible lograr esto sin usar un código del lado del lado del cliente y el servidor combinación.

Con el fin de asegurarse de que el usuario debe rellenar el formulario cada vez sin autocompletar utilizo las siguientes técnicas:

  1. Generar los nombres de los campos de formulario en el servidor y el uso de campos de entrada ocultos para almacenar esos nombres, de manera que cuando se somete al servidor el código del lado del servidor puede utilizar los nombres generados para acceder a los valores de los campos. Este es dejar que el usuario tenga la opción de auto rellenar los campos.

  2. Coloque tres instancias de cada campo de formulario en el formulario y ocultar los primeros y últimos campos de cada conjunto con css y luego desactivarlas después de carga de la página usando javascript. Esto es para impedir que el navegador rellenando los campos automáticamente.

Aquí es un violín que demuestra el Javascript, CSS y HTML tal como se describe en el # 2 https://jsfiddle.net/xnbxbpv4/

javascript:

$(document).ready(function() {
    $(".disable-input").attr("disabled", "disabled");
});

CSS:

.disable-input {
  display: none;
}

html:

<form>
<input type="email" name="username" placeholder="username" class="disable-input">
<input type="email" name="username" placeholder="username">
<input type="email" name="username" placeholder="username" class="disable-input">
<br>
<input type="password" name="password" placeholder="password" class="disable-input">
<input type="password" name="password" placeholder="password">
<input type="password" name="password" placeholder="password" class="disable-input">
<br>
<input type="submit" value="submit">
</form>

Aquí es un ejemplo aproximado de lo que el código de servidor utilizando asp.net con la maquinilla de afeitar sería facilitar # 1

modelo:

public class FormModel
{
    public string Username { get; set; }
    public string Password { get; set; }
}

controlador:

public class FormController : Controller
{
    public ActionResult Form()
    {
        var m = new FormModel();

        m.Username = "F" + Guid.NewGuid().ToString();
        m.Password = "F" + Guid.NewGuid().ToString();

        return View(m);
    }

    public ActionResult Form(FormModel m)
    {
        var u = Request.Form[m.Username];
        var p = Request.Form[m.Password];

        // todo: do something with the form values

        ...

        return View(m);
    }
}

ver:

@model FormModel

@using (Html.BeginForm("Form", "Form"))
{
    @Html.HiddenFor(m => m.UserName)
    @Html.HiddenFor(m => m.Password)

    <input type="email" name="@Model.Username" placeholder="username" class="disable-input">
    <input type="email" name="@Model.Username" placeholder="username">
    <input type="email" name="@Model.Username" placeholder="username" class="disable-input">
    <br>
    <input type="password" name="@Model.Password" placeholder="password" class="disable-input">
    <input type="password" name="@Model.Password" placeholder="password">
    <input type="password" name="@Model.Password" placeholder="password" class="disable-input">
    <br>
    <input type="submit" value="submit">
}
Respondida el 28/02/2017 a las 07:25
fuente por usuario

votos
2

Safari no cambia su opinión acerca de autocompletar si ajusta autocomplete="off"dinámicamente a partir de JavaScript. Sin embargo respetaría si lo hace en función de cada campo.

$(':input', $formElement).attr('autocomplete', 'off');
Respondida el 01/11/2015 a las 07:28
fuente por usuario

votos
2

Sé que esto es una entrada antigua, pero podría ser importante saber que Firefox (creo que sólo Firefox) utiliza un valor llamado ismxfilledque básicamente obliga autocompletar.

ismxfilled="0" para OFF

o

ismxfilled="1" para ON

Respondida el 13/08/2015 a las 18:22
fuente por usuario

votos
1

Prueba esto :

<input type='text' autocomplete='off' />
Respondida el 27/05/2017 a las 05:13
fuente por usuario

votos
1

Me gustaría aclarar que esta respuesta es por el bien de la integridad y conocimiento de la comunidad, de ninguna manera es lo recomendó.

Con respecto a Internet Explorer 11, hay una función de seguridad en el lugar que se puede utilizar para bloquear autocompletar. Funciona así:

Cualquier valor formulario de entrada que se ha modificado en JavaScript vez que el usuario ya ha entrado en ella se marca como no elegible para autocompletar.

Esta función se utiliza normalmente para proteger a los usuarios de los sitios web maliciosos que quieren cambiar su contraseña después de entrar en él o similares.

Sin embargo, podría insertar un carácter especial en el comienzo de una cadena de contraseña para bloquear la función de autocompletar. Este carácter especial podría ser detectado y eliminado más adelante en la tubería.

Respondida el 17/11/2016 a las 14:41
fuente por usuario

votos
1

Una solución no es para insertar el campo de la contraseña en el DOM antes de que el usuario desea cambiar la contraseña. Esto puede ser aplicable en determinados casos:

En nuestro sistema tenemos un campo de contraseña, que en una página de administración, por lo que hay que evitar el establecimiento inadvertidamente contraseñas de otros usuarios. El formulario tiene una casilla de verificación adicional que cambiar la visibilidad campo de contraseña por esta razón.

Así pues, en este caso, el relleno automático de un gestor de contraseñas se convierte en un doble problema, porque la entrada ni siquiera será visible para el usuario.

La solución era tener el gatillo casilla de verificación si el campo de la contraseña se introduce en el DOM, no sólo su visibilidad.

pseudo-implementación de AngularJS:

<input type="checkbox" ng-model="createPassword">
<input ng-if="changePassword" type="password">
Respondida el 24/10/2016 a las 06:16
fuente por usuario

votos
1

Yo uso el siguiente fragmento de jQuery:

// Prevent input autocomplete
$.fn.preventAutocomplete = function() {
    this.each(function () {
        var $el = $(this);
        $el
            .clone(false, false)
            .insertBefore($el)
            .prop('id', '')
            .hide()
        ;
    });
};

Y que sólo $('#login-form input').preventAutocomplete();

Respondida el 02/09/2016 a las 07:14
fuente por usuario

votos
0

Para evitar navegador llenado automático con las credenciales de inicio de sesión guardados sitio del usuario, coloque un campo de entrada de texto y contraseña en la parte superior del formulario con valores vacíos no y el estilo "position: absolute; top: -999px; izquierda: -999px" set para ocultar los campos.

<form>
  <input type="text" name="username_X" value="-" tabindex="-1" aria-hidden="true" style="position: absolute; top: -999px; left:-999px" />
  <input type="password" name="password_X" value="-" tabindex="-1" aria-hidden="true" style="position: absolute; top: -999px; left:-999px" />
  <!-- Place the form elements below here. -->
</form>

Es importante que un campo de texto precede al campo de contraseña. De lo contrario el relleno automático no se puede prevenir en algunos casos.

Es importante que el valor de los campos, tanto el texto y la contraseña no esté vacío, para evitar que los valores por defecto que se sobrescriba en algunos casos.

Es importante que estos dos campos son antes del campo "real" tipo de contraseña (s) en el formulario.

Para los navegadores más nuevos que son HTML 5.3 conforme, el valor del atributo de autocompletar "nueva contraseña" debería funcionar.

<form>
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" autocomplete="new-password" />
</form>

Una combinación de los dos métodos se pueden utilizar para apoyar tanto a los navegadores antiguos y nuevos.

<form>
  <div style="display:none">
    <input type="text" readonly tabindex="-1" />
    <input type="password" readonly tabindex="-1" />
  </div>
  <!-- Place the form elements below here. -->
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" autocomplete="new-password" />
</form>
Respondida el 07/07/2018 a las 18:20
fuente por usuario

votos
0

Para resolver este problema, he utilizado algunos trucos CSS y las siguientes obras para mí.

input {
    text-security:disc;
    -webkit-text-security:disc;
    -mox-text-security:disc;
}

Por favor, lea este artículo para más detalles.

Respondida el 11/05/2018 a las 10:19
fuente por usuario

votos
0

Yo era capaz de detener Chrome 66 de autorrelleno mediante la adición de dos entradas falsas y darles posición absoluta:

<form style="position: relative">
  <div style="position: absolute; top: -999px; left: -999px;">
    <input name="username" type="text" />
    <input name="password" type="password" />
  </div>
  <input name="username" type="text" />
  <input name="password" type="password" />

En un primer momento, He intentado añadir display:none;a las entradas, pero los ignoró y Chrome autorrellenará las visibles.

Respondida el 08/05/2018 a las 19:07
fuente por usuario

votos
0

No hay entradas falsas, sin JavaScript!

No hay manera de no desactivar el relleno automático consistente en todos los navegadores. He intentado todas las diferentes sugerencias y ninguno de ellos funciona en todos los navegadores. La única manera de no utiliza introducción de la contraseña en absoluto. Esto es lo que ocurrió:

<style type="text/css">
    @font-face {
        font-family: 'PasswordDots';
        url('/assets/font/password-dots.woff2?v=1.0.0') format('woff2');
        font-weight: normal;
        font-style: normal;
    }

    input.password {
        font-family: 'PasswordDots' !important;
        font-size: 8px !important;
    }
</style>

<input class="password" type="text" spellcheck="false" />

Descargar: contraseña dots.woff2

Así es como mi resultado final será similar a:

Máscara contraseña

El efecto secundario negativo es que es posible copiar texto sin formato de la entrada, a pesar de que debería ser posible para evitar que con algunos JS.

Respondida el 13/04/2018 a las 03:35
fuente por usuario

votos
0

Por fin tengo una solución de primera añada 2 campos de texto ocultos

y sólo tiene que añadir una directiva angular como esto

 (function () {

    'use strict';

    appname.directive('changePasswordType', directive);

    directive.$inject = ['$timeout', '$rootScope',  '$cookies'];

    function directive($timeout,  $rootScope, $cookies) {
        var directive = {
            link: link,
            restrict: 'A'
        };

        return directive;

        function link(scope,element) {
            var process = function () {
                var elem =element[0];
                elem.value.length > 0 ? element[0].setAttribute("type", "password") :
                element[0].setAttribute("type", "text");
            }

            element.bind('input', function () {
                process();
            });

            element.bind('keyup', function () {
                process();
            });
        }
    }
})()

a continuación, utilizarlo en su campo de texto donde se necesita para prevenir automático completo

    <input type="text" style="display:none">\\can avoid this 2 lines
    <input type="password" style="display:none">
    <input type="text"  autocomplete="new-password" change-password-type>

Nota: No se olvide de incluir jQuery, y estableció type ="text"inicialmente

Respondida el 26/03/2018 a las 09:07
fuente por usuario

votos
0

También puede utilizar una en lugar de una entrada para omitir la parte de autocompletar.

Respondida el 19/03/2018 a las 09:18
fuente por usuario

votos
0

Puede usar autocompletar = apagado en controles de entrada para evitar la terminación automática

Por ejemplo:

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

si el código anterior no funciona, entonces tratan de añadir los atributos autocapitalize = "off" autocomplete = "off"

Respondida el 02/03/2018 a las 21:47
fuente por usuario

votos
0

Puede usar autocompletar = apagado en controles de entrada para evitar la terminación automática

Por ejemplo:

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

si el código anterior no funciona, trate de añadir esos atributos también

autocapitalize = "off" autocomplete = "off"

o

Cambiar atributo de tipo de entrada a type = "búsqueda". Google no se aplica automáticamente a las entradas de llenado con un tipo de búsqueda.

Respondida el 02/03/2018 a las 21:35
fuente por usuario

votos
0

Fijo. Sólo hay que añadir por encima del campo de entrada de bienes

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion - MDN https://medium.com/paul-jaworski/turning-off-autocomplete-in-chrome-ee3ff8ef0908 - medio probado en EDGE, cromo (última V63), Firefox Quantum (57.0.4 64 бит), Firefox (52.2.0) campos falsos son una solución para el relleno automático de cromo / ópera conseguir los campos incorrectos

 const fakeInputStyle = {opacity: 0, float: 'left', border: 'none', height: '0', width: '0'}

 <input type="password" name='fake-password' autoComplete='new-password' tabIndex='-1' style={fakeInputSyle} />

<TextField
  name='userName'
  autoComplete='nope'
  ... 
/>

<TextField
      name='password'
      autoComplete='new-password'
      ... 
    />
Respondida el 19/01/2018 a las 09:57
fuente por usuario

votos
0

Ninguna de las respuestas proporcionadas trabajó en todos los navegadores que probé. Sobre la base de las respuestas que se facilitan, esto es lo que terminó con, (probado) en Chrome 61 , Microsoft Edge 40 (EdgeHTML 15), IE 11 , Firefox 57 , Opera 49 y Safari 5.1 . Es loco como resultado de muchos ensayos; sin embargo, funciona para mí.

<form autocomplete="off">
    ...
    <input type="password" readonly autocomplete="off" id="Password" name="Password" onblur="this.setAttribute('readonly');" onfocus="this.removeAttribute('readonly');" onfocusin="this.removeAttribute('readonly');" onfocusout="this.setAttribute('readonly');" />
    ...
</form> 

<script type="text/javascript">
    $(function () {           
        $('input#Password').val('');
        $('input#Password').on('focus', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
    $('input#Password').on('keyup', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
    $('input#Password').on('keydown', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
</script>
Respondida el 22/11/2017 a las 05:28
fuente por usuario

votos
0

autocomplete = 'off' no funcionó para mí, de todos modos puedo configurar el atributo de valor del campo de entrada a un espacio de decir <input type='text' name='username' value=" ">que el conjunto de caracteres por defecto de entrada a un espacio, y dado que el nombre de usuario estaba en blanco la contraseña estaba aclarado también.

Respondida el 12/03/2017 a las 16:17
fuente por usuario

votos
-14

¿Por qué harías la vida de tu usuario menos conveniente?

"Las contraseñas / datos de la tarjeta de crédito / etc. no deben guardarse" es un mal argumento: con la función Autocompletar activada, los navegadores de Mac OS X almacenan dichos valores en una base de datos cifrada con permisos por aplicación. Por el contrario, ¿cuál es el efecto realista de autocomplete=off? El usuario lo va a escribir en un archivo de texto no cifrado, o mejor aún, en una nota post-it adjunta a la pantalla.

Lo bueno es que hay bookmarklets como el que Antti mencionó, y parches para que el motor ignore por completo el atributo .

En serio, te insto a reconsiderar el uso de este atributo. No , no beneficia a nadie.

Respondida el 08/09/2008 a las 20:42
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more