Остановить Google Chrome, заполнить ввод

У меня есть input type text для пользователя изменить свой адрес электронной почты и пароль на странице настройки учетной записи.

Как остановить автоматический ввод Chrome.

Chrome запомните страницу input data с журнала и автоматически заполните страницу настроек учетной записи.

Chrome автоматически заполнить input изменить мой адрес электронной почты и пароль на странице настройки учетной записи

+23
источник поделиться
14 ответов

Вы явно устанавливаете значения как пустые? Например:

<input type="text" name="textfield" value="">

Это должно помешать браузерам помещать данные туда, где они не должны. Кроме того, вы можете добавить атрибут автозаполнения в тег формы:

<form autocomplete="off" ...></form>
+29
источник

Мы больше не зависим от хаков для этого. Вы можете установить autocomplete на новый пароль, и он будет работать по назначению.

<input type="password" name="pwd" autocomplete="new-password">

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete

+50
источник

Решение 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">
+16
источник

Эта проблема все еще существует с версии 55.0.2883.87 м. (в Windows 10)

Решения, такие как установка атрибута автозаполнения в форме

или добавление поддельных полей ввода и удаление атрибута имени перед отправкой не работают больше, поскольку Chrome игнорирует или моментально автоматически завершает их при удалении.

Единственный способ заставить его работать в соответствии с назначением - установить атрибут autocomplete на "new-password"

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

даже на входах без пароля.

+8
источник

К сожалению, 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>
+3
источник

Последняя версия 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 для меня.

+3
источник

Почти выскочил из окна, пытаясь решить эту проблему... похоже, Google теперь игнорирует включение и отключение автозаполнения. Я использовал более старые исправления (например, фальшивые скрытые поля пароля, которые также больше не работали). Основываясь на стандарте уровня жизни, вам нужно вместо этого использовать маркеры автозаполнения. Вы должны использовать их в соответствующем контексте использования. Надеюсь, что это будет полезно.

https://html.spec.whatwg.org/multipage/forms.html#autofilling-form-controls:-the-autocomplete-attribute

+2
источник

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');"/>
+1
источник

Попробуйте элемент скрытого пароля

<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>
+1
источник

Введите значение '' (пробел) для поля имени пользователя, а Chrome не будет автоматически указывать имя пользователя или пароль.

<input type = 'text' value = ' ' name = 'username' />

Если вы когда-либо заполняете имя пользователя введенным пользователем значением, введите код ", если нет введенного пользователем значения.

0
источник

Попробуйте следующее:

<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() в форме.

0
источник

У меня была аналогичная проблема. После неудачных попыток. Я пробовал этот хак настройки

type = "search"

вместо текста. Даже при том, что это не довольно взломать. В большинстве случаев это не вызывает никаких проблем. тип поиска не отличается от текста на данный момент.

0
источник

Это работает:

<form autocomplete="off" ...></form>

Протестировано в Chrome 56.0.2924.87 (64-разрядная версия)

0
источник

Установив autocomplete = "new-password", он работает. Перед тестированием вы сначала очищаете данные просмотра.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос