Firefox lembrando número de telefone como nome de usuário

8

Eu tenho uma página de registro que inclui todos os campos padrão, por exemplo, número de telefone, email etc.

O telefone e a senha estão adjacentes à tabulação, ou seja, não estão fisicamente adjacentes, mas se você estiver tabulando, será o primeiro nome -> sobrenome -> e-mail -> telefone -> senha.

Por alguma razão, está dando aos usuários um prompt para lembrar seu nome de usuário e senha quando se registram (o que é bom), mas está salvando o número de telefone como o nome de usuário.

Existem regras para ajudá-lo a decidir / impedir que as pessoas se lembrem da combinação tão útil de número de telefone / senha?

desde já, obrigado

EDITAR:

  • Os nomes nos elementos do formulário são "Telefone" e "txtpassword".

  • Gostaria de lembrar de e-mail e senha. Isso é possível, dada a situação atual?

  • Infelizmente não consigo reordenar os campos do formulário. A ordem é dada nas guias acima.

tgandrews
fonte
Haha isso acontece comigo também #
Mark Henderson

Respostas:

4

Use autocomplete = "off" para desativar o preenchimento automático e o Firefox (e outros navegadores que suportam esse atributo não padrão) não salvarão esses valores.

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

Editar:

O que você está vendo pode ser devido aos nomes dos campos que você está usando. O preenchimento automático procura nomes comuns de nome de usuário / campo de login para funcionar e o campo do seu número de telefone pode estar fazendo com que o Firefox acredite que é o campo de ID de login principal.

Edição 2:

O campo de email é anterior ou posterior ao campo Telefone? Se for depois, é possível colocá-lo antes do campo Telefone? Se sim, isso faz alguma diferença?

John Conde
fonte
Não acho que o OP queira esse comportamento. Além disso, você não pode usar autocompleteno nível do campo, ele deve estar no nível do formulário, ou seja,<form autocomplete="false"...
DisgruntledGoat
Você pode usá-lo no nível do campo. Confira o formulário de login do wachovia.com como um exemplo perfeito.
John Conde
@disgrunt - nós o usamos em elementos de campo o tempo todo - especificamente campos de número / expiração do CC.
Mark Henderson
2

Geralmente não é possível sem reorganizar seus campos ou sem hackear. Seu usernamecampo deve estar logo antes do seu passwordcampo no Firefox.

Eu tive o mesmo problema, mas sobrenome, em vez de telefone . Depois de horas tentando coisas, essa resposta deixou claro. O Firefox (pelo menos na versão atual) procura um campo de senha. Em seguida, ele coloca o campo antes dele como o nome do usuário e pergunta ao usuário se ele deseja salvar essas credenciais.

O preenchimento automático não é o problema (principal) aqui. Mesmo com o preenchimento automático desativado para todo o formulário, o Firefox ainda perguntará se você deseja salvar suas credenciais.

Nelu
fonte
2

Você pode fazer algo assim:

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

O Firefox na versão atual procura o primeiro campo de senha. A partir daí, ele procura o primeiro campo do tipo anterior textou emailencontra o campo de nome de usuário.

Portanto, podemos enganá-lo usando um tipo de campo inválido ( defaultNÃO é um tipo de campo válido). Portanto, agora você não precisa reordenar os campos para satisfazer o Firefox. Quando um navegador não conhece o tipo de campo, apenas exibe um campo de texto normal.

O Safari usa um mecanismo diferente e não tive problemas com ele. Eu acho que olha os nomes dos campos.

Os atributos de preenchimento automático fornecem ao navegador mais informações sobre o uso de cada campo.

B. Martin
fonte
1

Eu notei um comportamento semelhante no Google Chrome antes. Quais são os nomes dados aos campos de entrada? Eu sei que os navegadores costumam ter problemas com os campos se usarem código name="signup[email]"para passar tudo em uma variável para o lado do servidor (muito útil em PHP).

Você pode tentar usar este formato simples: <input name="username" type="text">com emaile passwordcomo os nomes desses dois campos. (Nota: Na verdade, eu não testei isso, quando me deparei com essa situação antes de não conseguir alterar os nomes dos campos.)

DisgruntledGoat
fonte