CGI-BBS > JAVA/JavaScript > JavaScript > Enterキーについて


カレッヂ
カレッヂ


質問者 ともえ  投稿日 8/24(金) 10:59:50
ログイン及びパスワード入力欄にデータを入力した後、そのまま「Enter」キーを押すことがあります。
そこで考えたことなんですが、「Enter」キーを「Tab」キーと同じ機能を持たせることが出来ないだろうかということです。
現在ログインにデータを入力した後、「Tab」キーを押すとパスワードの入力欄にFocusしています。
そして、パスワードを入力した後「Tab」キーをおすと、ログインボタンにFocusします。
(ログインボタンは、現在Image画像を使用しています。)
この一連の動作を「Enter」キーで行うにはどのように記述すればよろしいのでしょうか??
教えてください。
回答者 呑兵衛  [削除]  投稿日 8/25(土) 22:03:18
呑兵衛と言います。

BIOSがキーボード操作の全てを握っています。
onMouseOver 等のような GUIベースを利用するものと基本的に役割や仕組みが違うので、
JavaScriptだけではできないのではないでしょうか。
回答者 呑兵衛  [削除]  投稿日 8/26(日) 19:16:05
大うそ書いてしまいました。

onkeydown="if(event.keyCode==0D){document.forms[移動するフォームの番号].inputの名前.focus()}"

で目的のことができると思います。
* 0D = Enter code
* 09 = Tab code
フォーム内で文字変換する操作と、移動操作は分ける必要があり、
ブラウザ別に event を分ける必要もあるかもしれません。
(やはりビールを飲みつつ回答を書いてはいけませんでした)
質問者 ともえ  [削除]  投稿日 8/30(木) 09:28:47
早速の回答ありがとうございます。
しかし、何分素人の為、実際にどう書いて良いのか分からず頭の中が「???」になっています。
大変申し訳ないんですが、部分的じゃなく全体を通して分かるように教えていただけませんか??
ちなみに下記のソースの場合何処に同埋め込んで良いのか教えていただけると、大変うれしいのですが…。
-----------------------------------------------------------------------------
<HTML>
<HEAD>
<TITLE>ログイン</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF VLINK=#FF0000 LINK=#0000FF>
  <FORM NAME="LOGIN_FORM" METHOD="POST">
    <TABLE BORDER=0 WIDTH="462">
      <TR>
        <TD BGCOLOR="#99CCCC" WIDTH="200" HEIGHT="48" ALIGN="RIGHT">
          <FONT COLOR="#336666"><B>ユーザID: </B></FONT></TD>
        <TD BGCOLOR="#C5EFE7" WIDTH="262" HEIGHT="48">  
          <INPUT TYPE=TEXT NAME=LOGINUID VALUE="" MAXLENGTH=20 SIZE=20></TD>
      </TR>
      <TR>
        <TD BGCOLOR="#99CCCC" WIDTH="200" HEIGHT="48" ALIGN="RIGHT">
          <FONT COLOR="#336666"><B>パスワード: </B></FONT></TD>
        <TD BGCOLOR="#C5EFE7" WIDTH="262" HEIGHT="48">  
          <INPUT TYPE=PASSWORD NAME=PWD VALUE="" MAXLENGTH=20 SIZE=20>
          <INPUT TYPE=HIDDEN NAME=LOGINPWD VALUE=""></TD>
      </TR>
      <TR>
        <TD WIDTH="200" HEIGHT="48" ALIGN="RIGHT"> </TD>
        <TD WIDTH="260" HEIGHT="48">
          <A HREF="#"><img src="image/Login.gif" width="129" height="22" border="0"></A>
          <A HREF="#"><img src="image/Clear.gif" width="43" height="22" border="0"></A>
        </TD>
      </TR>
    </TABLE>
  </FORM>
  <BR>
</BODY>
</HTML>
-----------------------------------------------------------------------------
この構文で実際に試してみたいんですが、どうぞ宜しくお願い致します。
回答者 呑兵衛  [削除]  投稿日 8/30(木) 17:21:29
いろいろ書いてみたのですが、TextField に2バイト文字が入った場合の処理を考えると、
スクリプトは永久に終結しなくなります。
Latinコード(半角英数字で変換の必要のないもの)を要求していても、
利用者側はそれに関わらず、全角文字を入れて変換する場合もあり、
何のためのキーコードの動作変更か分からなくなります。

VisualBasic の解説書の中に、
->->->->
たとえば、[Enter]がおされたら次のフィールドに移動するというインターフェース
を作ってはいけません。
Windowsでは[Tab]キーで移動することになっています。
もし、これを守らないようなプログラムにしようとすると、あちこちで例外処理を
作らなくてはならなくなり、最終的に破綻します。
<-<-<-<-
という一説がありましたので、お答えの代わりに報告しておきます。
質問者 ともえ  [削除]  投稿日 8/30(木) 17:50:23
「onkeydown」を使用しても無理だったんですね。
結局Windowsの仕組みに従うしかないのですね。
とても残念です。

今回の回答ありがとうございました。
また何かありましたら質問させて頂きます。
その際にはまたよろしくお願い致します。

このページは終了したので返信(回答)は書きこめません

Web裏技