Firefox recuerda el número de teléfono como nombre de usuario

8

Tengo una página de registro que incluye todos los campos estándar, por ejemplo, número de teléfono, correo electrónico, etc.

El teléfono y la contraseña son adyacentes a la pestaña, es decir, no físicamente adyacentes, pero si está tabulando, va el nombre -> apellido -> correo electrónico -> teléfono -> contraseña.

Por alguna razón, les está dando a los usuarios un aviso para que recuerden su nombre de usuario y contraseña cuando se registran (lo cual es bueno) pero está guardando el número de teléfono como nombre de usuario.

¿Existen reglas para ayudarlo a decidir / evitar que sugiera que las personas recuerden la combinación tan útil de número de teléfono / contraseña?

Gracias por adelantado

EDITAR:

  • Los nombres en los elementos del formulario son "Phone" y "txtpassword".

  • Me gustaría recordar el correo electrónico y la contraseña. ¿Es esto posible dada la situación actual?

  • Lamentablemente no puedo reordenar los campos del formulario. El orden se da en las pestañas de arriba.

tgandrews
fuente
Jaja esto también me pasa a mí
Mark Henderson

Respuestas:

4

Use autocomplete = "off" para deshabilitar autocompletar y Firefox (y otros navegadores que admiten este atributo no estándar) no guardarán esos valores.

<input type=text" name="dontsave" autocomplete="off">

Editar:

Lo que está viendo puede deberse a los nombres de campo que está utilizando. La función de autocompletar busca nombres comunes de nombre de usuario / campo de inicio de sesión y su campo de número de teléfono puede estar causando que Firefox crea que es el campo de identificación de inicio de sesión principal.

Edición 2:

¿Es el campo de correo electrónico antes o después del campo Teléfono? Si es después, ¿es posible ponerlo antes del campo Teléfono? Si es así, ¿eso hace la diferencia?

John Conde
fuente
No creo que el OP quiera ese comportamiento. Además, no puede usar autocompleteen el nivel de campo, debe estar en el nivel de formulario, es decir<form autocomplete="false"...
DisgruntledGoat
Puedes usarlo a nivel de campo. Consulte el formulario de inicio de sesión de wachovia.com como un ejemplo perfecto.
John Conde
@disgrunt: lo usamos en elementos de campo todo el tiempo, específicamente en el número CC / campos de vencimiento.
Mark Henderson
2

Por lo general, no es posible sin reordenar sus campos o sin un hack. Su usernamecampo tiene que estar justo antes de su passwordcampo en Firefox.

Tuve el mismo problema pero apellido en lugar de teléfono . Después de horas de probar cosas, esta respuesta lo dejó claro. Firefox (al menos en la versión actual) busca un campo de contraseña. Luego toma el campo anterior como el campo de nombre de usuario y le pregunta al usuario si desea guardar estas credenciales.

Autocompletar no es el problema (principal) aquí. Incluso con el autocompletado desactivado para todo el formulario, Firefox aún le preguntará si desea guardar sus credenciales.

Nelu
fuente
2

Puedes hacer algo como esto:

<input type="text" name="username" autocomplete="username">
<input type="default" name="email" autocomplete="email">
<input type="password" name="password" autocomplete="new-password">

Firefox en la versión actual busca el primer campo de contraseña. A partir de ahí, busca el primer campo de tipo anterior texto emailpara encontrar el campo de nombre de usuario.

Entonces podemos engañarlo usando un tipo de campo no válido ( defaultNO es un tipo de campo válido). Así que ahora no necesita reordenar los campos para satisfacer a Firefox. Cuando un navegador no conoce el tipo de campo, solo muestra un campo de texto normal.

Safari usa un mecanismo diferente y no he tenido problemas con él. Creo que mira los nombres de los campos.

Los atributos de autocompletar le dan al navegador más indicaciones sobre para qué se utiliza cada campo.

B. Martin
fuente
1

He notado un comportamiento similar en Google Chrome antes. ¿Cuáles son los nombres dados a los campos de entrada? Sé que los navegadores a menudo tienen problemas con los campos si usan código como name="signup[email]"para pasar todo en una variable al lado del servidor (muy útil en PHP).

Podría intentar usar este formato simple: <input name="username" type="text">con emaily passwordcomo los nombres para esos dos campos. (Nota: en realidad no he probado esto, cuando me encontré con esta situación antes de que no pudiera cambiar los nombres de los campos).

Cabra descontento
fuente