Für die automatische Vervollständigung können Sie Folgendes verwenden:
<form autocomplete="off">
zum Farbproblem:
Auf Ihrem Screenshot kann ich sehen, dass das Webkit den folgenden Stil generiert:
input:-webkit-autofill {
background-color: #FAFFBD !important;
}
1) Da # id-Stile noch wichtiger sind als .class-Stile, kann Folgendes funktionieren:
#inputId:-webkit-autofill {
background-color: white !important;
}
2) Wenn dies nicht funktioniert, können Sie versuchen, den Stil programmgesteuert über Javascript festzulegen
$("input[type='text']").bind('focus', function() {
$(this).css('background-color', 'white');
});
3) Wenn das nicht funktioniert, sind Sie zum Scheitern verurteilt :-) Bedenken Sie Folgendes : Dadurch wird die gelbe Farbe nicht ausgeblendet, aber der Text wird wieder lesbar.
input:-webkit-autofill {
color: #2a2a2a !important;
}
4) eine CSS / Javascript-Lösung:
CSS:
input:focus {
background-position: 0 0;
}
und das folgende Javascript muss unter Last ausgeführt werden:
function loadPage()
{
if (document.login)//if the form login exists, focus:
{
document.login.name.focus();//the username input
document.login.pass.focus();//the password input
document.login.login.focus();//the login button (submitbutton)
}
}
z.B:
<body onload="loadPage();">
Viel Glück :-)
5) Wenn keine der oben genannten Aufgaben ausgeführt wird, versuchen Sie, die Eingabeelemente zu entfernen, sie zu klonen und die geklonten Elemente wieder auf der Seite zu platzieren (funktioniert in Safari 6.0.3):
<script>
function loadPage(){
var e = document.getElementById('id_email');
var ep = e.parentNode;
ep.removeChild(e);
var e2 = e.cloneNode();
ep.appendChild(e2);
var p = document.getElementById('id_password');
var pp = p.parentNode;
pp.removeChild(p);
var p2 = p.cloneNode();
pp.appendChild(p2);
}
document.body.onload = loadPage;
</script>
6) Von hier aus :
if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) {
$(window).load(function(){
$('input:-webkit-autofill').each(function(){
var text = $(this).val();
var name = $(this).attr('name');
$(this).after(this.outerHTML).remove();
$('input[name=' + name + ']').val(text);
});
});
}