2015-09-25 4 views
8

Ich habe eine Textbox DropDown AngularJS Komponente, die gut in Chrome, Firefox, Safari und Internet Explorer funktioniert.Eingabetextvorschläge in Edge deaktivieren?

Ein Merkmal dieser Komponente besteht darin, dass Sie eine Zeichenfolge eingeben und dann mit den Pfeiltasten nach oben/unten durch die Vorschläge blättern können.

In Microsoft Edge, sobald Sie den Pfeil nach unten schlagen, wird der folgende Text in das Feld Eingabe hinzugefügt:

kurz die Änderungen erklären (korrigierte Rechtschreibung, feste Grammatik, verbesserte Formatierung)

Gibt es irgendetwas, was ich tun kann, um dies zu verhindern?

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

Um dies zu demonstrieren, die oben snipper, geben Sie etwas in das Textfeld und drücken Sie den Pfeil nach unten zweimal am Rand laufen. Ich möchte das nicht passieren, da es meine Autocomplete bricht!

Dank

+0

Verwenden Sie einen Eingang? Wenn nicht, welche Art von Element verwenden Sie? Versuchen Sie, dieses Problem auf jede mögliche Weise oder mit einer Angular.js-Lösung zu beheben? – rockmandew

+0

Ein Bog Standard-Text-Eingabe, um die Komponente zu bauen, können Sie etwas Code, wenn Sie möchten, posten? – JMK

+0

Könnte auch, nicht sicher, was eine "bog" Standard-Texteingabe ist, um ganz ehrlich zu sein. Ich gehe davon aus, dass das ein Tippfehler war, und Sie sprechen nur über eine normale Texteingabe. Bitte poste den Code und ich werde weitermachen. Ich gehe davon aus, dass es sich um eine einfache "Autocomplete" -Einstellungslösung handelt. – rockmandew

Antwort

21

Wenn ich richtig verstehe, haben Sie ein Problem mit der Funktion zur automatischen Vervollständigung. Fügen Sie einfach "autocomplete = 'off'" zu Ihrer Eingabe hinzu, und das sollte die Funktion deaktivieren.

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

Dies funktioniert bei keinem modernen Browser. Versuchen Sie, Täuschungsfelder zu verwenden. http://Stackoverflow.com/a/2555771/317908 –

+1

Es funktioniert für mich in Edge, danke! –

+0

Wenn Sie in Edge den Inhalt der Eingabe rückgängig machen und löschen, zeigt Edge die Autocomplete-Box an. Während dieses Attribut hilft, löst es das Problem nicht. – Brain2000

1

, wenn Sie es brauchen app/siteweiten Sie jquery verwenden können:

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

Oder wenn Sie wie ich und mit Angular + ui-Router Sie könnten versuchen, die folgenden:

In Ihrem index.html fügen das folgende Skript:

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

Dann Zustandsänderungen abzudecken, das folgende in der Root-Controller hinzuzufügen:

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

Die Timeouts sind für die HTML vor dem Auftragen der jquery zu machen.

Wenn Sie eine bessere Lösung finden, lassen Sie es mich bitte wissen.

4

Von Mozilla: Sie können die zur automatischen Vervollständigung auf dem tatsächlichen Formular-Tag <form autocomplete='off' ... >...</form> eingestellt, die für die gesamte Form arbeiten, oder auf einzelne <input type='text' /> Tags.

Nach meiner Erfahrung auf IE 11 und Edge setzen es auf das Formular funktioniert, aber einzelne Tags funktioniert nicht. Ich habe versucht, Chrome zu testen, aber die Felder waren bereits nicht automatisch vervollkommnend.

Bitte lesen Sie die vollständige Article für weitere Informationen.

HINWEIS

Die meisten Browser diese Felder für die Anmeldung außer Acht lassen.

+1

Das ist gut als Antwort, Prost! – JMK

+0

In Edge funktionierte es nur wenn auf Formular, nicht einzelne Elemente, danke –