asp.netでWebシステムを作っていたのですが、同じ画面なのにオートコンプリートが有効なテキストボックスと、無効なテキストボックスがありました。
無効なテキストボックスは、asp:GridViewコントロールやasp:Repeaterコントロールの中にあるテキストボックスだったので、それが影響なのかなーとか思いつつ、調べていたのですが原因は全然違うところにありました。
以下のことが原因でした。
オートコンプリートが有効になるパターンというのは、<input type=”submit”>のボタンで、フォームの入力値が送信された場合のみらしいです。
javascriptなどでsubmitしてもオートコンプリートとして記憶されません。
僕の作成していた画面は、ボタンにasp:LinkButtonコントロールを使用していました。
これは、HTMLでは<a>タグとなり、このタグをクリックした際に、javascriptにてサーバーにsubmitされます。
まさしくこれが原因でした。
対応策として、asp:LinkButtonコントロールをasp:Buttonコントロールに変更しました。
asp:ButtonコントロールはHTMLで、<input type=”submit”>となります。
こうすることにより、無事、オートコンプリートが有効になりました。
まぁ確かにボタン以外でsubmitされるっていうのも、なんだか変な感じはするもんなぁ。。。