Firefox merkt sich die Telefonnummer als Benutzernamen


8

Ich habe eine Registrierungsseite, die alle Standardfelder enthält, z. B. Telefonnummer, E-Mail usw.

Das Telefon und das Passwort befinden sich nebeneinander, dh nicht physisch nebeneinander. Wenn Sie jedoch tippen, wird Vorname -> Nachname -> E-Mail -> Telefon -> Passwort angezeigt.

Aus irgendeinem Grund werden Benutzer aufgefordert, sich bei der Registrierung ihren Benutzernamen und ihr Kennwort zu merken (was nett ist), aber die Telefonnummer wird als Benutzername gespeichert.

Gibt es Regeln, die helfen, zu entscheiden / zu verhindern, dass Personen sich an die nützliche Kombination aus Telefonnummer und Passwort erinnern?

Danke im Voraus

BEARBEITEN:

  • Die Namen in den Formularelementen sind "Telefon" und "txtpassword".

  • Ich möchte, dass es sich an E-Mail und Passwort erinnert. Ist dies angesichts der aktuellen Situation erreichbar?

  • Leider kann ich die Formularfelder nicht neu anordnen. Die Reihenfolge ist in der obigen Tabelle angegeben.


Haha das passiert mir auch
Mark Henderson

Antworten:


4

Verwenden Sie autocomplete = "off", um die automatische Vervollständigung zu deaktivieren, und Firefox (und andere Browser, die dieses nicht standardmäßige Attribut unterstützen) speichern diese Werte nicht.

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

Bearbeiten:

Was Sie sehen, kann an den von Ihnen verwendeten Feldnamen liegen. Die automatische Vervollständigung sucht nach allgemeinen Benutzernamen- / Anmeldefeldnamen, die funktionieren, und Ihr Telefonnummernfeld kann dazu führen, dass Firefox glaubt, es sei das primäre Anmelde-ID-Feld.

Bearbeiten 2:

Befindet sich das E-Mail-Feld vor oder nach dem Telefonfeld? Wenn es danach ist, ist es möglich, es vor das Telefonfeld zu stellen? Wenn ja, macht das einen Unterschied?


Ich glaube nicht, dass das OP dieses Verhalten will. Außerdem können Sie nicht autocompleteauf Feldebene verwenden, es muss auf Formularebene sein, dh<form autocomplete="false"...
DisgruntledGoat

Sie können es auf Feldebene verwenden. Schauen Sie sich das Anmeldeformular von wachovia.com als perfektes Beispiel an.
John Conde

@disgrunt - wir verwenden es ständig für Feldelemente - speziell für CC-Nummern- / Ablauffelder.
Mark Henderson

2

Es ist im Allgemeinen nicht möglich, ohne Ihre Felder neu zu ordnen oder ohne einen Hack. Ihr usernameFeld muss direkt vor Ihrem passwordFeld in Firefox sein.

Ich hatte das gleiche Problem, aber Nachname statt Telefon . Nach stundenlangen Versuchen machte diese Antwort deutlich. Firefox (zumindest in der aktuellen Version) sucht nach einem Passwortfeld. Dann nimmt es das Feld davor als Benutzernamenfeld und fragt den Benutzer, ob er diese Anmeldeinformationen speichern möchte.

Autocomplete ist hier nicht das (Haupt-) Problem. Selbst wenn die automatische Vervollständigung für das gesamte Formular deaktiviert ist, werden Sie von Firefox weiterhin gefragt, ob Sie Ihre Anmeldeinformationen speichern möchten.


2

Sie können so etwas tun:

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

Firefox in der aktuellen Version sucht nach dem ersten Kennwortfeld. Von dort aus sucht es nach dem ersten vorhergehenden Feld vom Typ textoder emailnach dem Feld für den Benutzernamen.

Wir können es also austricksen, indem wir einen ungültigen Feldtyp verwenden ( defaultist KEIN gültiger Feldtyp). Jetzt müssen Sie die Felder nicht mehr neu anordnen, um Firefox zufrieden zu stellen. Wenn ein Browser den Feldtyp nicht kennt, zeigt er nur ein normales Textfeld an.

Safari verwendet einen anderen Mechanismus und ich hatte keine Probleme damit. Ich denke, es sieht nach den Namen der Felder aus.

Die Autocomplete-Attribute geben dem Browser weitere Hinweise darauf, wofür jedes Feld verwendet wird.


1

Ich habe zuvor ein ähnliches Verhalten in Google Chrome festgestellt. Wie heißen die Eingabefelder? Ich weiß, dass Browser häufig Probleme mit Feldern haben, wenn sie Code verwenden name="signup[email]", um alles in einer Variablen an die Serverseite zu übergeben (sehr nützlich in PHP).

Sie können versuchen, dieses einfache Format zu verwenden: <input name="username" type="text">mit emailund passwordals Namen für diese beiden Felder. (Hinweis: Ich habe dies nicht getestet, als ich auf diese Situation stieß, bevor ich die Feldnamen nicht ändern konnte.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.