はありまW3Cで有効な方法を無効にするオートコンプリートをHTMLのものです。

StackOverflow https://stackoverflow.com/questions/582244

  •  06-09-2019
  •  | 
  •  

質問

使用時の xhtml1-transitional.dtd doctypeの収集、クレジットカード番号は以下のHTML

<input type="text" id="cardNumber" name="cardNumber" autocomplete='off'/>

のままのフラグ警告は、W3C validator:

属性が無い"オートコンプリート".

はありまW3C/基準方を無効にするブラウザオートコンプリートセンシティブな分野に対す。

役に立ちましたか?

解決

こちらの 良い記事は、MDCの問題とソリューション)を自動補完の形態.マイクロソフト社の出版も同様の こちらの, ました。

正直、これが何か重要なのはユーザに"こじ破り"の基準はこのように適しています。例えば、アマゾン、オートコンプリート'attributeんでいたはずなのに、うまくいかない。

除する場合には、警告、利用できるwebブラウザでJavaScriptの実行を適用する属性のブラウザを支えて下さっている(IE、Firefoxの重要なブラウザ)を使用 someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" );

最後に、サイトの場合はHTTPSには、自動的にoff自動補完していくつかの他のブラウザってください).

更新

この答えいがかなりの数のupvotes、そう思ってやってきましたポートしつつあることを明らかにしたHTML5を使用できる'オートコンプリート性にフォームの要素となります。を参照 文書 W3Cのです。

他のヒント

どう受け取ったのでしょうか?て驚いていたW3Cうにする手法が提案されているという(X)HTML4.の自動補完機能は完全にブラウザベースで紹介されました過去年間も後にHTML4の標準執筆).

なに驚かされた場合HTML5いていなかった。

編集: と思 HTML5 ていること 特徴です。を定義するページとしてHTML5、次のdoctypeしていますe:この非常に最初のテキストをソースコードとします。したい場合や、そのようなすべてのブラウザを支援このパスワードを入力してくがまだドラフト形式です。

<!DOCTYPE html>

HTML4:No

HTML5:あり

の自動補完の属性を、列挙属性。属性 二つのです。の キーワードマップの状態の off キーワードマップにoffとなります。属性の場合も一方を省略することもできます。の 欠損値のデフォルトの の状態です。の off 状態を示すことにより デフォルトの形態制御には、自らのオートフィルフィールド名 設定 off;の状態を示すことにより、デフォルト形式の操作 には、自らの autofill フィールド名の設定を"on"にする。

参考: W3

はありませんが、ブラウザのオートコンプリートは、多くの場合、事前に記入されたフィールドと同じname属性を有する電界によってトリガーされます。あなたがリグアップののランダム化されたフィールド名を持つために巧妙な方法をすることができれば、オートコンプリート、フィールドの任意の以前に入力した値を引くことができないだろう。

あなたは名「email_<?= randomNumber() ?>」のように入力フィールドを与え、その後、あなたがこれをやってのけることができ、POSTを通じてこのデータループを受けるスクリプトを持っているかの変数は、パターン「email_[some number]」をマッチング何かを探してGETした場合、これは(事実上)の成功を保証するのにかかわらず、ブラウザのだろう。

いいえ、良い記事はここでの モジラウィキのです。

私は無効attributeを使い続けるでしょう。私は実用主義が有効に勝つべきところ、これがあると思います。

どのようにJavaScriptでそれを設定することについてはどうですか?

var e = document.getElementById('cardNumber');
e.autocomplete = 'off'; // Maybe should be false

これは完璧ではありませんが、あなたのHTMLが有効になります。

であることを引く全4種類の入力:

$('form,input,select,textarea').attr("autocomplete", "off");

参考:

あなたはjQueryのを使用する場合は、あなたがそのような何かを行うことができます:

$(document).ready(function(){$("input.autocompleteOff").attr("autocomplete","off");});

としたいautocompleteOffクラスを使用します:

<input type="text" name="fieldName" id="fieldId" class="firstCSSClass otherCSSClass autocompleteOff" />

すべてのあなたの入力がautocomplete=offしたい場合、あなたは、単にそれを使用することができます:

$(document).ready(function(){$("input").attr("autocomplete","off");});
ちょうどcapthaのように: -

別の方法も、セキュリティに役立ちますあなたはそれを表示するたびに異なる入力ボックスに何かを呼び出すことです。そうすれば、セッションは1回のみの入力とオートコンプリートが上に行くには何もしています読み取ることができます。

ブラウザの経験に干渉すべきかどうかのrmeadorの質問についてだけポイント:私たちは、連絡先管理・CRMシステムを開発し、フォームに他の人のデータを入力しているとき、あなたはそれが常にあなた自身の詳細を示唆したくありませんます。

これが我々のニーズのために動作しますが、我々はまともなブラウザを取得するためにユーザーに伝えるの贅沢を持っています。)

autocomplete='off' 

autocomplete="off" この問題のためのすべての最近のブラウザを推奨いたします。

<form name="form1" id="form1" method="post" autocomplete="off"
   action="http://www.example.com/form.cgi">
  [...]
</form>

現在のバージョンのゲブラウザの属性の自動補完の作品。それ以前のバージョンに帰りNetscape6.2では例外のために、"住所"と"名前"

更新

場合には、ブラウザの意を示唆する自動補完の値の場合でも自動補完の属性を定では、offに設定されています。この予期せぬ挙動をする動作時間の最大値と最小値を導きのステータスです。フレキシビリティを本当に強制力の自動補完が 割り当てランダムな文字列の属性, 例えば:

autocomplete="nope"

このランダムな値ではない valid one, のブラウザが困難を乗り越える事ができます。

Documetation

ランダム「名前」属性は私の作品の使用ます。

フォームが送信されたとき、あなたはまだ名前でアクセスできるようにフォームを送信するときに

私は、name属性をリセットします。 (名前を格納するためにid属性を使用して)

オートコンプリート属性の場所に関するいくつかの混乱があることに注意してください。それはそれは明示的に<のhref = "http://www.w3.org/TR/html5/formsすることができます(全体のFORMタグまたは個々のINPUTタグのいずれかに適用することができ、これは本当にHTML5の前に標準化されていませんでした。 htmlの#-オートコンプリート属性」のrel = "noreferrer">両方の<のhref = "http://www.w3.org/TR/html5/forms.html#the-form-element" のrel = "noreferrer">場所を)。古いドキュメント最も顕著なだけFORMタグに言及 Mozillaの記事rel="noreferrer">このを親フォームのの場合でも)文句を言うでしょう。この混乱のより詳細な分析はここに掲載されています。HTMLフォームで混乱をオートコンプリート上= OFF属性は

理想のない、しかし、あなたは、あなたがそれをレンダリングするたびに、テキストボックスのIDと名前を変えることができる - 。あなたはアウトデータを得ることができるので、あまりにもそれをサーバ側を追跡する必要があると思います。

これが動作するかどうかわからないか、単に考えられていたわけではありません。

私は簡単な方法があると思います。 (ジャバスクリプト経由で)ランダムな名前を持つ隠し入力を作成し、それにユーザー名を設定します。パスワードを繰り返します。暗闇の中でオートコンプリートを維持しながら、この方法で、あなたのバックエンドのスクリプトは、適切なフィールド名が正確に何を知っています。

私はおそらく間違っているんだけど、それだけで考えです。

if (document.getElementsByTagName) {
    var inputElements = document.getElementsByTagName("input");
    for (i=0; inputElements[i]; i++) {
        if (inputElements[i].className && (inputElements[i].className.indexOf("disableAutoComplete") != -1)) {
            inputElements[i].setAttribute("autocomplete","off");
        }
    }
}

このソリューションは、私と一緒に動作します:

$('form,input,select,textarea').attr("autocomplete", "nope");
あなたは、この地域でオートフィルを使用したい場合は、

:要素にautocomplete="false"を追加 例:

<input id="search" name="search" type="text" placeholder="Name or Code" autcomplete="false">

有効なオートコンプリートをオフ

<script type="text/javascript">
    /* <![CDATA[ */
    document.write('<input type="text" id="cardNumber" name="cardNumber" autocom'+'plete="off"/>');
    /* ]]> */ 
</script>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top