Настоящее решение 2019 года для отключения автозаполнения Chrome - PullRequest
1 голос
/ 23 июня 2019

Я знаю, что на этот вопрос много ответов. Я просмотрел все решения по отключению автозаполнения Google (выпадающий список предложений), например, с помощью autocomplete = 0ff или autocomplete = false, но ничего не решило проблему. Я создал приложение MVC, у которого есть представления с выпадающими списками и HTML EditorFor.

Одно решение для добавления имени в редактор HTML помогло удалить автозаполнение, однако, поскольку я изменил имя редактора HTMLFor, у меня возникла проблема с отправкой значения обратно.

<div class="col-md-10">
     @Html.EditorFor(model => model.Address, new {htmlAttributes = new { @class = "form-control", @id = "show_address", Name = Guid.NewGuid().ToString(), autocomplete = "noped" } })
</div>

У кого-нибудь есть решение на 2019 год для отключения автозаполнения Google?

Обновление:

Я попытался использовать html.textboxfor (как указано в первом решении ниже), однако я понял, что autocomplete = off работает, только если в представлении есть еще одно текстовое поле для. Если есть несколько текстовых полей для одного и того же представления, использование autocomplete = off для любого текстового поля Html не будет работать ни для одного из них, чтобы отключить автозаполнение! Может кто-нибудь помочь?

Ответы [ 4 ]

1 голос
/ 24 июня 2019

Вы пробовали?

<%= Html.TextBoxFor(
    model => model.date, 
    new { @class = "aDatePicker", autocomplete = "off" }
)%>

Будет сгенерирована разметка, близкая к следующей:

<input type="text" id="date" name="date" class="aDatePicker" autocomplete="off" />

Также вы можете попробовать:

//Disable autocomplete throughout the site
$(document).ready(function() {
    $("input:text,form").attr("autocomplete","off");
})
0 голосов
/ 27 июня 2019

Я думаю, что нашел ответ. Я отдаю должное @Mangesh Ati за это решение. Я просто хотел подвести итог решения для всех, кто интересуется.

autocomplete = off работает, чтобы отключить автозапросы Google для всех @htmlTextBoxFor, , кроме для части модели, называемой address , вместо этого используйте autocomplete = randomn_string

Важно: Если вы используете автозаполнение jquery в текстовом поле, важно добавить атрибут autocomplete = randomn_string в .focus, как показано ниже:

 $('#show_address').autocomplete({

            }).focus(function () {
                 $(this).attr('autocomplete', 'some_random_value');

            });
0 голосов
/ 24 июня 2019

В VB это работало для меня (используйте конвертер C #):

@Html.EditorFor(Function(m) m.Password, New With {.class = "form-control text-center", .autocomplete = "new-password"})
0 голосов
/ 24 июня 2019

EditorFor имеет свои недостатки, он не работает в некоторых сценариях, лучший способ использовать TextBoxFor вместо EditorFor. Кроме того, он не влияет на значение Postback. (Подробнее проверьте здесь )

@Html.TextBoxFor(model => model.Address, new { @class = "form-control",  @id = "show_address", autocomplete = "off" })

ОБНОВЛЕНИЕ : проверьте мое обновленное демо DEMO
После добавления autocomplete = off, некоторые браузеры игнорируют их, и они пытаются показать вам некоторыеподсказка или автозаполнение.Подробнее отметьте это
Добавьте случайное значение в автозаполнение, чтобы браузеры считали его выключенным.

@Html.TextBoxFor(model => model.Address1, new { @class = "form-control",  @id = "show_address", autocomplete = "some_random_value" })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...