Одним из решений было бы автоматическое заполнение ввода пробельными символами и их четкое фокусирование.
Пример: http://nfdb.net/autofill.php
<!doctype html>
<html>
<head>
<title>Autofill Test</title>
<script>
var userfield;
// After the document has loaded, manipulate DOM elements.
window.addEventListener('load', function() {
// Get the username field element.
userfield = document.getElementById('user');
// Listen to the 'focus' event on the input element.
userfield.addEventListener('focus', function() {
// Checks if the value is the EM space character,
// and removes it when the input is recieves focus.
if (this.value == '\u2003') this.value = ''
}, false);
// Listen to the 'blur' event on the input element.
// Triggered when the user focuses on another element or window.
userfield.addEventListener('blur', function() {
// Checks if the value is empty (the user hasn't typed)
// and inserts the EM space character if necessary.
if (this.value == '') this.value = '\u2003';
}, false);
}, false);
</script>
</head>
<body>
<form method="GET" action="">
<input id="user" name="username" type="text" value=" "/><br/>
<input name="password" type="password" value=""/><br/>
<input type="submit" value="Login">
</form>
</body>
</html>
Это должно остановить браузер от автоматического заполнения полей, но все же позволяют им автозаполнения.
Вот еще один пример, который очищает входы формы после загрузки страницы. Преимущество этого метода заключается в том, что входы никогда не имеют в них каких-либо пробельных символов, недостатком является то, что существует небольшая вероятность того, что значения автозаполнения могут быть видны в течение нескольких миллисекунд.
http://nfdb.net/autofill2.php
<!doctype html>
<html>
<head>
<title>Autofill Test</title>
<script>
var userfield, passfield;
// Wait for the document to load, then call the clear function.
window.addEventListener('load', function() {
// Get the fields we want to clear.
userfield = document.getElementById('user');
passfield = document.getElementById('pass');
// Clear the fields.
userfield.value = '';
passfield.value = '';
// Clear the fields again after a very short period of time, in case the auto-complete is delayed.
setTimeout(function() { userfield.value = ''; passfield.value = ''; }, 50);
setTimeout(function() { userfield.value = ''; passfield.value = ''; }, 100);
}, false);
</script>
</head>
<body>
<div>This form has autofill disabled:</div>
<form name="login" method="GET" action="./autofill2.php">
<input id="user" name="username" type="text" value=""/><br/>
<input id="pass" name="password" type="password" value=""/><br/>
<input type="submit" value="Login">
</form>
<div>This form is untouched:</div>
<form name="login" method="GET" action="./autofill2.php">
<input name="username" type="text" value=""/><br/>
<input name="password" type="password" value=""/><br/>
<input type="submit" value="Login">
</form>
</body>
</html>
Возможно (потому что он не может позволить _любой_ действия автозаполнения), связанных с: http://stackoverflow.com/questions/2999578/how-do-i-stop-chrome-from-pre-populating -input-boxes – MetalFrog
Я попробовал 'autocomplete =" off "', и он остановил браузер от автозаполнения входов при загрузке страницы, но также не позволил предложениям подняться, когда я набрал или нажал на входах. Я попробовал 'value =" "' и другие подобные вещи, и он ничего не делал. Я попытался удалить атрибут value и ничего не сделал. –
Я пробовал называть поле другим, но в моей ситуации было бы сложно сохранить работу на сервере, если я это сделаю. –