Остановить Google Chrome, заполнить ввод
У меня есть input type text
для пользователя изменить свой адрес электронной почты и пароль на странице настройки учетной записи.
Как остановить автоматический ввод Chrome.
Chrome запомните страницу input data
с журнала и автоматически заполните страницу настроек учетной записи.
Chrome автоматически заполнить input
изменить мой адрес электронной почты и пароль на странице настройки учетной записи
Ответы
Ответ 1
Вы явно устанавливаете значения как пустые? Например:
<input type="text" name="textfield" value="">
Это должно помешать браузерам помещать данные туда, где они не должны. Кроме того, вы можете добавить атрибут автозаполнения в тег формы:
<form autocomplete="off" ...></form>
Ответ 2
Мы больше не зависим от хаков для этого. Вы можете установить autocomplete на новый пароль, и он будет работать по назначению.
<input type="password" name="pwd" autocomplete="new-password">
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete
Ответ 3
Решение 1:
Ввод двух строк кода под тегом <form ..>
делает трюк.
<form id="form1" runat="server" >
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
...
Подробнее
Решение 2: Удаляет атрибуты "имя" и "id" из элементов и назначает их обратно через 1 мс. Поместите это в документ, чтобы подготовиться.
$('form[autocomplete="off"] input, input[autocomplete="off"]').each(function () {
var input = this;
var name = $(input).attr('name');
var id = $(input).attr('id');
$(input).removeAttr('name');
$(input).removeAttr('id');
setTimeout(function () {
$(input).attr('name', name);
$(input).attr('id', id);
}, 1);
});
Решение 3: Протестировано в Chrome 60.0.3112.101
<input type="password" name="pwd" autocomplete="new-password">
Ответ 4
Эта проблема все еще существует с версии 55.0.2883.87 м. (в Windows 10)
Решения, такие как установка атрибута автозаполнения в форме
или добавление поддельных полей ввода и удаление атрибута имени перед отправкой не работают больше, поскольку Chrome игнорирует или моментально автоматически завершает их при удалении.
Единственный способ заставить его работать в соответствии с назначением - установить атрибут autocomplete на "new-password"
<input type="text" name="text" autocomplete="new-password">
даже на входах без пароля.
Ответ 5
К сожалению, autocomplete="off"
не работал у меня (больше). Итак, вот мое решение:
Сначала прочтите, а затем удалите атрибуты "name
" и "id
" из элементов. Затем, после 1 мс, снова установите эти атрибуты со значениями, считанными ранее. Для меня это работает:)
<form autocomplete="off"><br />
<input type="text" name="username" id="username" /><br />
<input type="password" name="password" id="password" /><br />
</form>
<pre>
$('form[autocomplete="off"] input, input[autocomplete="off"]').each(function(){
var input = this;
var name = $(input).attr('name');
var id = $(input).attr('id');
$(input).removeAttr('name');
$(input).removeAttr('id');
setTimeout(function(){
$(input).attr('name', name);
$(input).attr('id', id);
}, 1);
});
</pre>
Ответ 6
Последняя версия Chrome (46.0.2490.86), похоже, снова изменила поведение. На этот раз AutoFill не имеет ничего общего с autocomplete
или readonly
или другими обходными решениями, предложенными здесь (и в этих отчетах об ошибках https://code.google.com/p/chromium/issues/detail?id=468153, https://bugs.chromium.org/p/chromium/issues/detail?id=587466)
Скорее, AutoFill теперь смотрит на метку рядом с полем ввода и генерирует на ней AutoFill (а также идентификатор и имя). Большой ключ заключается в том, как AutoFill может фактически заполнять сразу несколько полей (например, Street, Suburb и State). По-видимому, используется несколько методов (метка, имя, идентификатор), чтобы различать пространственные отношения между полями.
Итак, обходным путем является вставка нежелательного текста в метку внутри скрытого диапазона...
S<span style="display:none">_</span>uburb:
... и также обфускать/удалить идентификатор и имя. Это было единственное, что помешало Suburb AutoFill для меня.
Ответ 7
Почти выскочил из окна, пытаясь решить эту проблему... похоже, Google теперь игнорирует включение и отключение автозаполнения. Я использовал более старые исправления (например, фальшивые скрытые поля пароля, которые также больше не работали). Основываясь на стандарте уровня жизни, вам нужно вместо этого использовать маркеры автозаполнения. Вы должны использовать их в соответствующем контексте использования. Надеюсь, что это будет полезно.
https://html.spec.whatwg.org/multipage/forms.html#autofilling-form-controls:-the-autocomplete-attribute
Ответ 8
Chrome игнорирует как autocomplete = "anything", так и скрытые поля. Обходной путь HTML/CSS будет использовать абсолютное позиционное поле пароля перед реальным:
<input type="text" name="username" required>
<input style="visibility: hidden; position: absolute; left:-99999px" type="password" name="fakepasswordfieldtoturnoffautocomplete">
<input type="password" name="password" required>
EDIT:
Как упоминалось в нескольких других ответах в других повторяющихся вопросах, наиболее элегантным рабочим решением до сих пор является следующее:
<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>
Ответ 9
Попробуйте элемент скрытого пароля
<form>
<input type="text" name="fakeusername" class="fake-autofill-fields"/>
<input type="password" name="fakepassword" class="fake-autofill-fields"/>
...
...
</form>
<script>
$(document).ready(function () {
$(".fake-autofill-fields").show();
window.setTimeout(function () {
$(".fake-autofill-fields").hide();
}, 1);
});
</script>
Ответ 10
Введите значение '' (пробел) для поля имени пользователя, а Chrome не будет автоматически указывать имя пользователя или пароль.
<input type = 'text' value = ' ' name = 'username' />
Если вы когда-либо заполняете имя пользователя введенным пользователем значением, введите код ", если нет введенного пользователем значения.
Ответ 11
Попробуйте следующее:
<div id="form_container">
<input type="text" name="username" autocomplete="off">
<input type="password" name="pwd" autocomplete="off">
<input tytep="submit" name="login" id="login" value="Log In">
</div>`
Код jquery:
jQuery("#login").click(function(){
jQuery("#form_container").wrap('<form method="post"></form>');
jQuery("form").submit();
});
Если вы не закроете свои поля ввода в форму, то автозаполнение хрома не появится.
Когда вы нажимаете кнопку отправки, просто обмениваете поля вокруг формы и запускаете submit()
в форме.
Ответ 12
У меня была аналогичная проблема. После неудачных попыток. Я пробовал этот хак настройки
type = "search"
вместо текста. Даже при том, что это не довольно взломать. В большинстве случаев это не вызывает никаких проблем. тип поиска не отличается от текста на данный момент.
Ответ 13
Это работает:
<form autocomplete="off" ...></form>
Протестировано в Chrome 56.0.2924.87 (64-разрядная версия)
Ответ 14
Установив autocomplete = "new-password", он работает.
Перед тестированием вы сначала очищаете данные просмотра.