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されるっていうのも、なんだか変な感じはするもんなぁ。。。

コメントを残す

メールアドレスが公開されることはありません。