テキストボックスドロップダウンAngularJSコンポーネントを作成しました。これは、Chrome、Firefox、Safari、およびInternet Explorerで適切に機能します。
このコンポーネントの機能は、文字列を入力し、上下の矢印キーを使用して候補をスクロールできることです。
Microsoft Edgeでは、下矢印を押すとすぐに、次のテキストが入力ボックスに追加されます。
変更を簡単に説明してください(スペルの修正、文法の修正、書式の改善)
これを防ぐためにクライアント側でできることはありますか?
<form>
<input type="text" />
</form>
これを示すために、上記のスニッパーを実行し、テキストボックスに何かを入力して、Edgeの下矢印を2回押します。これが私のオートコンプリートを壊しているので、これが起こらないようにしたいです!
ありがとう
私が正しく理解している場合、オートコンプリート機能に問題があります。入力に「autocomplete = 'off'」を追加するだけで、機能が無効になります。
<input type="text" autocomplete="off"/>
残念ながら、最新のEdgeでは、上記の提案はどれもうまくいきませんでした。ただし、このソリューションは次のことを行います。
<input type="text" autocomplete="off" list="autocompleteOff"
id="fieldId" name="fieldname" placeholder="Placeholder here" />
これにより、Edgeは、存在しないautocompleteOff
と呼ばれるデータルックアップリストを見つけます。私のために御馳走を働かせます。
追加された利点は、それが純粋なHTMLであり、CSSやJSが必要ないことです。
Mozillaから:実際のフォームタグにオートコンプリートを設定できます<form autocomplete='off' ... >...</form>
は、フォーム全体または個別に機能します<input type='text' />
タグ。
IE 11とEdgeでフォームに配置すると機能しますが、個々のタグは機能しません。Chromeでテストしましたが、フィールドはすでにオートコンプリート。
詳細については、完全な 記事 を参照してください。
[〜#〜]ノート[〜#〜]
ほとんどのブラウザは、ログインフィールドではこれを無視します。
chromeの入力でオートコンプリートを削除するには、autocomplete="off"
を使用するときにIDも削除する必要があります。入力のid
を削除しないと、オートコンプリートは機能しません。
簡単な例:
<input type="text" autocomplete="off" list="autocompleteOff"
name="fieldname" placeholder="Placeholder here" />
入力は名前で処理できます;)、それでうまくいきます。
アプリ/サイト全体で必要な場合は、jqueryを使用できます。
$('input').attr('autocomplete','off');
または、私と同じようにAngular + ui-routerを使用している場合は、次のことを試してください。
あなたのindex.html
次のスクリプトを追加します。
<script type="text/javascript">
setTimeout(function() {
$('input').attr('autocomplete', 'off');
}, 2000);
</script>
次に、状態の変化に対応するために、以下をルートコントローラに追加します。
$rootScope.$on('$stateChangeStart', function() {
$timeout(function () {
$('input').attr('autocomplete', 'off');
}, 2000);
});
タイムアウトは、jqueryを適用する前にHTMLがレンダリングするためのものです。
より良い解決策を見つけた場合はお知らせください。