--- title: フォームの中のテキストボックスでエンターキーを押したときの挙動を変更する author: kazu634 date: 2009-08-02 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4743;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - ajax ---

前回に詰まったと書いたフォームのテキストボックスでエンターキーを押すと自分自身にデータを送信する件ですが、検索するとピンポイントで書いているページを発見しました!ラッキー

Formに書いた内容をAjax送信する時には、「Enterキー」で自動送信されてしまうのを避ける必要があります。

Ajaxでの送信は、submitボタンを使わずに、onclickやonkeyupなどへXMLHttpRequestのopen()やsend()を仕込んで、送信するわけですが、「Enterキー」を押してしまうと、ブラウザが気を利かせて、submitボタンを押されたのと同じ動作をしてしまうからです。

でも、当然、Ajaxでは、普通は、action属性は設定されていませんので、何もしてくれません。IEですと、Ajax送信はされずに、リロードされてしまいます。

てなわけで、たとえば、

JavaScript++かも日記: 【Ajax】FormでAjax送信する時のEnter送信

というわけで、フォームタグの部分に「onsubmit=”return false”」を指定しました。

「ajax」に関連する最近のエントリ