2015-09-25 16 views
8

Mam wbudowany rozwijany element pola tekstowego AngularJS, który działa świetnie w przeglądarce Chrome, Firefox, Safari i Internet Explorer.Wyłącz sugestie tekstu wejściowego w Edge?

Cechą tego komponentu jest wpisywanie ciągu znaków, a następnie przewijanie sugestii za pomocą klawiszy strzałek w górę/w dół.

W programie Microsoft Edge, tak szybko, jak trafisz strzałkę w dół, poniższy tekst jest dodawany do pola tekstowego:

krótko wyjaśnić zmian (poprawiona ortografia, stałe gramatycznych, poprawa formatowania)

Czy jest coś, co mogę zrobić po stronie klienta, aby temu zapobiec?

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

Aby to wykazać, należy uruchomić powyższą snipper, wpisz coś w polu tekstowym i kliknij strzałkę w dół dwa razy na krawędzi. Chcę, żeby tak się nie stało, ponieważ łamie moje autouzupełnianie!

Dzięki

+0

Czy używasz wejścia? Jeśli nie, jakiego rodzaju elementu używasz? Czy próbujesz naprawić ten problem w dowolny sposób lub za pomocą rozwiązania Angular.js? – rockmandew

+0

Standardowe wejście na torf, aby zbudować komponent, może opublikować kod, jeśli chcesz? – JMK

+0

Równie dobrze, nie jestem pewien, co to jest standardowe wejście "torfowe" jest całkowicie szczery. Zakładam, że to był literówka i mówisz tylko o regularnym wprowadzaniu tekstu. Proszę zaksięgować kod, a ja przejdę dalej. Założę się, że jest to proste rozwiązanie ustawień "autouzupełniania". – rockmandew

Odpowiedz

21

Jeśli dobrze rozumiem, masz problem z funkcji autouzupełniania. Proste dodaj "autocomplete =" off "" do danych wejściowych, które powinno wyłączyć tę funkcję.

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

To nie zadziała w żadnej nowoczesnej przeglądarce. Spróbuj użyć pól wabików. http://stackoverflow.com/a/2555771/317908 –

+1

To działa dla mnie w Edge, dzięki! –

+0

W Edge, jeśli cofniesz i usuniesz zawartość wejścia, Edge wyświetli pole autouzupełniania. Więc podczas gdy ten atrybut pomaga, nie rozwiązuje problemu. – Brain2000

1

jeśli trzeba to app/site-wide można użyć jQuery:

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

Lub jeśli jesteś podobny do mnie i za pomocą kątowa + UI-routera można spróbować wykonać następujące czynności:

W swojej index.html dodać następujący scenariusz:

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

Następnie na pokrycie zmian stanu, dodać następujące kontrolera głównego:

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

limity czasu są dla html, aby uczynić przed nałożeniem jQuery.

Jeśli znajdziesz lepsze rozwiązanie, daj mi znać.

4

Z Mozilli: Możesz ustawić autouzupełnianie na aktualnej etykiecie formularza <form autocomplete='off' ... >...</form>, która będzie działać dla całego formularza lub na pojedynczych tagach <input type='text' />.

W moim doświadczeniu na IE 11 i Edge umieszczenie go na formularzu działa, ale pojedyncze znaczniki nie działają. Próbowałem testować w Chrome, ale pola nie były już autouzupełniania.

Więcej informacji można znaleźć w pełnej wersji Article.

UWAGA

Większość przeglądarek zignorować to dla pól logowania.

+1

To jest dobre jako odpowiedź, okrzyki! – JMK

+0

In Edge działało tylko po umieszczeniu formularza, a nie poszczególnych elementów, dzięki –

Powiązane problemy