2007.01.15: Enterキーが押されたら次の入力項目へ

フォーム上でEnterキーが押されたときにTabキーが押されたように次の入力項目へ移動させるにはどうしたら良いか。通常はテキストフィールドでEnterを押してしまうと送信されてしまう。ネット上でいろいろ探したけど、MSDNでEnterキーを押された時に無視する方法が載っていたけど、それを次のように改良してみた。KeyCodeをEnter(13)からTab(9)に書き換えてやるというもの。単純だけどIE上ではバッチリ動くので仕事では問題無さそう。
使い方は、フォームのonKeydownイベントにEnter2Tab()を割り当ててあげるだけ。
<script type="text/javascript">
function Enter2Tab() {
  if (event.keyCode == 13) {
    if (window.event.srcElement.type != 'submit' &&
      window.event.srcElement.type != 'textarea') {
      event.keyCode = 9;
    }
  }
}
</script>
<form onKeydown="Enter2Tab();">
<!-- ここに何か入力項目がある -->
</form>