Отключить ввод текста в Edge?

Я построил выпадающий текстовый блок AngularJS, который отлично работает в Chrome, Firefox, Safari и Internet Explorer.

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

В Microsoft Edge, как только вы нажмете стрелку вниз, в поле ввода добавляется следующий текст:

кратко объясните свои изменения (исправленное правописание, исправленная грамматика, улучшенное форматирование)

Есть ли что-нибудь, что я могу сделать на стороне клиента, чтобы это не произошло?

<form>
    <input type="text" />    
</form>

Ответ 1

Если я правильно понимаю, у вас возникла проблема с функцией автозаполнения. Просто добавьте "autocomplete = 'off" на свой вход, и это должно отключить функцию.

<input type="text" autocomplete="off"/>

Ответ 2

К сожалению, ни одно из вышеперечисленных предложений не помогло мне в последней версии Edge. Тем не менее, это решение:

<input type="text" autocomplete="off" list="autocompleteOff" 
    id="fieldId" name="fieldname" placeholder="Placeholder here" />

Это заставляет Edge найти список поиска данных с именем autocompleteOff, который не существует. Работает угощение для меня.

Дополнительным преимуществом является то, что это чистый HTML, без CSS или JS.

Ответ 3

Из Mozilla: Вы можете установить автозаполнения по фактической форме тега <form autocomplete='off' ... >...</form>, который будет работать в течение всей формы, или по тегам отдельных <input type='text' />.

В моем опыте по IE ​​11 и Edge, которые помещают его в форму, но отдельные теги не работают. Я пробовал тестирование в Chrome, но поля уже не были автозаполнены.

Пожалуйста, прочитайте полный Статья для получения более подробной информации.

Примечание

Большинство браузеров игнорируют это для полей входа.

Ответ 4

если вы хотите удалить автозаполнение на входе в chrome при использовании autocomplete="off", вы также должны удалить идентификатор. Если вы не удалите id на своем входе, автозаполнение не будет работать!

простой пример:

<input type="text" autocomplete="off" list="autocompleteOff" 
     name="fieldname" placeholder="Placeholder here" />

вы можете обработать ваш ввод с именем;), это работает для меня хорошо.

Ответ 5

если вам нужно приложение/сайт, вы можете использовать jquery:

$('input').attr('autocomplete','off');

Или, если вы похожи на меня и используя Angular + ui-router, вы можете попробовать следующее:

В index.html добавьте следующий script:

<script type="text/javascript">
    setTimeout(function() {
        $('input').attr('autocomplete', 'off');
    }, 2000);
</script>

Затем, чтобы охватить изменения состояния, добавьте следующее в свой корневой контроллер:

$rootScope.$on('$stateChangeStart', function() {
                $timeout(function () {
                    $('input').attr('autocomplete', 'off');
                }, 2000);
            });

Тайм-ауты предназначены для рендеринга html перед применением jquery.

Если вы найдете лучшее решение, сообщите мне.