web-dev-qa-db-ja.com

ブラウザのフォームの自動入力を有効にする

Webサイトのサインアップフォームを作成しています。さまざまな標準フォームフィールドが含まれています。など:名前、住所、電話番号、ユーザー名、パスワードなど。

フィールドをダブルクリックすると(Chrome 16)、アドレスを自動入力できるようになると、次のメッセージが表示されます。

このウェブページでは、このフォームの自動入力が無効になっています。

無効にしませんでしたが、有効にするにはどうすればよいですか? autocomplete="on"タグと(一部の)<form>タグに<input>を追加しようとしましたが、役に立ちませんでした。

すべてのフィールドにautocomplete="on"を追加する必要がありますか?また、ブラウザはどのフィールドが何であるかをどのように知るのですか?フィールドに特別な名前を付ける必要がありますか?

別の質問:フォームが自動入力されたときにトリガーされるonautocompleteイベントのようなものはありますか?私のフォームでは、郵便番号を入力すると、AJAXを使用してデータベースを検索し、州と都市を取得します(郵便番号は複数の都市に対応しているため、都市と州はドロップダウンです)。あなたのために。フォームが自動入力された後に実行できることを望んでいました。

追伸私はjQuery フォーム検証 プラグインを使用しています。

51
Rocket Hazmat

問題は、formタグに_method="POST"_がなかったことです。

メッセージをググリングした後、 バグレポート と、 コメント の1つに_method="POST"_と記載されています。

_method="POST"_を追加しました。自動入力が機能します。

場合によっては、フォームにない場合はactionを追加する必要があります。 action="javascript:void(0)"は機能します。

注:自動入力はonchangeイベントをトリガーするようです。

注2:ブラウザがどのフィールドが何であるかを知る方法については、この質問を参照してください: Google Chromeでオートフィルをトリガーする方法?

73
Rocket Hazmat

Autcompleteをオフにするオプションは、通常formタグにあります。Mozilla here の開発者ページを参照してください。これは、通常、その属性を削除すると、Webページで再び有効になることを意味するはずです。

AJAXリクエストの2番目の部分については、そのためのリスナーはないと思いますが、たとえばx秒ごとにフィールドの値をチェックする関数を追加できます。ルックアップを実行できるようになりました。

3