mate b
Al usar el xhtml1-transitional.dtd
doctype, recopilando un número de tarjeta de crédito con el siguiente HTML
<input type="text" id="cardNumber" name="cardNumber" autocomplete="off"/>
marcará una advertencia en el validador W3C:
no hay atributo “autocompletar”.
¿Existe una forma compatible con los estándares para deshabilitar el autocompletado del navegador en campos confidenciales en un formulario?
nick presta
Aquí es un buen artículo del MDC que explica los problemas (y soluciones) para el autocompletado de formularios. Microsoft ha publicado algo similar. aquítambién.
Para ser honesto, si esto es algo importante para sus usuarios, ‘romper’ los estándares de esta manera parece apropiado. Por ejemplo, Amazon usa bastante el atributo ‘autocompletar’ y parece funcionar bien.
Si desea eliminar la advertencia por completo, puede usar JavaScript para aplicar el atributo a los navegadores que lo admitan (IE y Firefox son los navegadores importantes) usando someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" );
Finalmente, si su sitio usa HTTPS, IE desactiva automáticamente el autocompletado (al igual que otros navegadores, que yo sepa).
Actualizar
Como esta respuesta todavía recibe bastantes votos a favor, solo quería señalar que en HTML5, puede usar el atributo ‘autocompletar’ en su elemento de formulario. Ver el documentación en W3C para ello.
-
Parece que Firefox no desactiva la función de autocompletar en https, pero ese es un conocimiento útil. ¡Gracias!
– mate b
24 de febrero de 2009 a las 16:17
-
Safari no respeta el atributo autocompletar=”desactivado”. Ver stackoverflow.com/questions/22817801/…
– Skurpi
9 de junio de 2014 a las 14:01
-
autocomplete
puede ser usado no solo enform
elementoyoff
el valor funciona al menos enchromium-40.0.2214.115
– x-yuri
3 de marzo de 2015 a las 21:29
-
El w3c parece estar ampliando los estándares para autocompletar en HTML5.1 (en borrador a partir de este comentario) w3c.github.io/html/…
-Justin Nafe
19 de abril de 2016 a las 17:23
-
Si nada funciona, use el área de texto en lugar del cuadro de texto para desactivar la función de autocompletar.
– Abdul Rehman
11 mayo 2016 a las 12:56
henrik paul
Me sorprendería mucho que el W3C hubiera propuesto una forma que funcionara con (X)HTML4. La función de autocompletar está completamente basada en el navegador y se introdujo durante los últimos años (mucho después de que se escribiera el estándar HTML4).
Sin embargo, no me sorprendería si HTML5 tuviera uno.
Editar: Como yo pensaba, HTML5 lo hace tengo eso rasgo. Para definir su página como HTML5, use el siguiente tipo de documento (es decir, coloque esto como el primer texto en su código fuente). Tenga en cuenta que no todos los navegadores admiten este estándar, ya que todavía está en forma de borrador.
<!DOCTYPE html>
-
Todos los navegadores esperan que las versiones anteriores de Konqueror lo admitan. Incluso IE6 lo admite. Es el doctype para ir.
– BalusC
10 de agosto de 2010 a las 16:48
RuudKok
HTML 4: No
HTML5: Sí
El atributo de autocompletar es un atributo enumerado. El atributo tiene dos estados. Él en la palabra clave se asigna al estado activado y el apagado
la palabra clave se asigna al estado desactivado. El atributo también se puede omitir. El valor que falta por defecto es el en Expresar. Él apagado state indica que, de forma predeterminada, los controles de formulario en el formulario tendrán su nombre de campo de autocompletar establecido en apagado; el estado activado indica que, de forma predeterminada, los controles de formulario en el formulario tendrán suautofill
nombre de campo establecido en “on”.
Referencia: W3
-
@ freestock.tk Sí, es más claro que todos los demás. La simplicidad importa.
– Sobrecodificador
5 mayo 2016 a las 16:38
No, pero el autocompletado del navegador a menudo se activa cuando el campo tiene el mismo name
atributo como campos que se completaron previamente. Si pudieras idear una manera inteligente de tener un nombre de campo aleatoriola función de autocompletar no podría extraer ningún valor ingresado previamente para el campo.
Si le diera a un campo de entrada un nombre como “email_<?= randomNumber() ?>
“, y luego haga que el script que recibe estos datos recorra las variables POST o GET buscando algo que coincida con el patrón”email_[some number]
“, podrías lograr esto, y esto tendría (prácticamente) el éxito garantizado, independientemente del navegador.
david aguas
No, un buen artículo está aquí en Wiki Mozila.
Continuaría usando el inválido attribute
. Creo que aquí es donde el pragmatismo debería ganar a la validación.
Pedro Mortensen
¿Qué tal configurarlo con JavaScript?
var e = document.getElementById('cardNumber');
e.autocomplete="off"; // Maybe should be false
No es perfecto, pero su HTML será válido.
rapaz
Sugiero capturar los 4 tipos de entrada:
$('form,input,select,textarea').attr("autocomplete", "off");
Referencia:
-
podría utilizar
:input
también– Ascherer
1 de junio de 2014 a las 21:18
¿Estás seguro de que jugar con la configuración de autocompletar del usuario es lo que quieres hacer? Si lo tienen encendido, probablemente les guste. Autocompletar es una función completamente del lado del navegador, muy parecida al botón que permite al usuario cambiar el tamaño de fuente, etc. No debe interferir con sus deseos.
– rmeador
24 de febrero de 2009 a las 16:25
¿Incluso para algo tan sensible como el número de tarjeta de crédito? No puedo pensar en muchas personas que quisieran recordar eso, especialmente porque la función de autocompletar está activada de forma predeterminada en la mayoría de los navegadores. Si quieren que se recuerde tanto, pueden usar algo que llene formularios como la barra de herramientas de Google.
– mate b
24 de febrero de 2009 a las 19:16
Mi caso de uso es ligeramente diferente: estoy implementando mi propio autocompletado y no quiero que entre en conflicto con el del navegador. Acabo de descubrir que autocomplete=”off” no es válido, pero parece que no hay otra solución simple (inyectarlo con js es una tontería)
– el compañero
11 de febrero de 2010 a las 17:27
@rmeador porque a veces queremos ofrecer una alternativa más fácil de usar al cuadro de sugerencias automáticas estándar. @corydoras, por favor, no presione su peso de OSX, no es útil para resolver esta pregunta.
– josh m.
7 de marzo de 2011 a las 21:54
El problema es que los bancos responsabilizarán al comerciante si se realizó una transacción fraudulenta… incluso si es culpa del cliente al 100%. Por lo tanto, en algunas circunstancias, es legítimo deshabilitar la función para el cliente.
– Anon21
23 de octubre de 2011 a las 18:52