Ermitteln, wann die automatische Füllung gefüllt wurde

8

Nach langem Ringen habe ich endlich die einzige Möglichkeit gefunden, Autofill-Styling in jedem Browser zu löschen:

%Vor%

Das Problem ist, dass es nicht in load ausgeführt werden kann, da das automatische Ausfüllen der Felder irgendwann nach der Tat passiert. Im Moment starte ich es mit einem Timeout von 100 Millisekunden nach load :

%Vor%

und das scheint auf den langsamsten Systemen sicher zu sein, aber es ist wirklich nicht elegant. Gibt es eine Art zuverlässiges Ereignis oder eine Überprüfung, die ich durchführen kann, um zu sehen, ob die Autofill abgeschlossen ist?

BEARBEITEN: Dies ist eine automatische Füllung.

AutoFill http://dl.dropbox.com/u/2463964 /autofill.png

    
Ry︁ 17.03.2012, 17:45
quelle

4 Antworten

2

Unter Ссылка gibt es einen Fehler, der dazu in Beziehung steht wie es vielleicht (sollte) schließlich möglich sein sollte, einfach über das Standardstyling mit einem !important Selektor zu schreiben, was die eleganteste Lösung wäre. Der Code wäre etwas wie:

%Vor%

Im Moment ist der Bug zwar noch offen und Ihre hackische Lösung scheint die einzige Lösung für Chrome zu sein. a) Die Lösung für Chrome benötigt nicht setTimeout und b) scheint es so zu sein wie Firefox Beachten Sie das !important -Flag oder eine Art CSS-Selektor mit hoher Priorität, wie in Überschreibe das Füllen von Formularen und füge die Hervorhebung mit HTML / CSS ein . Hilft das?

    
conartist6 17.03.2012, 19:11
quelle
13

Wenn Sie Chrome oder Safari verwenden, können Sie mit dem input:-webkit-autofill CSS-Selektor die automatisch ausgefüllten Felder abrufen.

Beispielerkennungscode:

%Vor%     
Tyilo 17.03.2012 18:06
quelle
0

Ich schlage vor, das automatische Füllen an erster Stelle zu vermeiden, anstatt zu versuchen, den Browser auszutricksen

%Vor%

Weitere Informationen: Ссылка

Wenn Sie das Verhalten zum automatischen Ausfüllen beibehalten , aber den Stil ändern möchten, können Sie möglicherweise so etwas tun (jQuery):

%Vor%     
Marcos Besteiro López 02.04.2012 15:34
quelle
-1
%Vor%

Ich habe festgestellt, dass die von Ihnen gepostete jQuery-Lösung keine angehängten Ereignisse kopiert. Die Methode, die ich gepostet habe, funktioniert für jQuery 1.5+ und sollte die bevorzugte Lösung sein, da die angefügten Ereignisse für jedes Objekt beibehalten werden. Wenn Sie eine Lösung haben, alle initialisierten Variablen durchzulaufen und sie neu zu initialisieren, wäre eine vollständige 100% funktionierende jQuery-Lösung verfügbar, andernfalls müssen Sie die gesetzten Variablen nach Bedarf neu initialisieren.

zum Beispiel: var foo = $ ('# foo');

dann müssten Sie anrufen: foo = $ ('# foo');

, weil das ursprüngliche Element entfernt wurde und an seiner Stelle ein Klon existiert.

    
Richard Vannauker 15.02.2013 12:52
quelle

Tags und Links