• ベストアンサー

Enterキーの操作

leaz024の回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.4

テキストボックス内でのEnterキーで送信されてしまうのは、ブラウザの仕様です。 また、その際に自分自身に送信するため、URLに『?TB_pw=123&C_pw=y』が出てきてしまうというのも、Mizyuさんの言う通りです。 これらは、通常次のようにします。 1.Enterキーへの対処について  Enterキーの動作を無効にすることは難しいので、パスワードチェックを送信時に行います。 これは、FORMタグの onSubmit で myPw() を呼び出すことで行えます。(これによって、Enterキーを押しても myPw() が実行されます。)  また、ログインボタンも type="submit" にすることで、onClick がなくてもチェックできるようになります。 2.『?TB_pw=123&C_pw=y』を表示しない方法について  確かに、FORMタグの action にHTML名を書いて、method="POST" とすれば表示されなくなるはずですが、サーバによってはPOST送信だと拒否される場合があります。 なので、最初に行っていたように、location.href にURLを指定する方がよいでしょう。  このとき、FORMの送信動作をキャンセルしないとならないため、onSubmit では常に false を返すようにします。 3.パスワードについて  JavaScriptにパスワードが書いてあるので、見ようと思えば誰にでもパスワードが見られてしまいます。(外部ファイルに置いても、暗号化しても、所詮は見られてしまいます。)  なので、JavaScriptのみでパスワードを掛けたい場合は、次のページ(top.htm)のファイル名をパスワードにすると良いでしょう。 これらをまとめると、次ようになります。 <FORM onSubmit="return myPw(this)"> <P>パスワード: <INPUT type="password" size="30" name="TB_pw"> <INPUT type="submit" value="ログイン"><BR><BR> <INPUT type="checkbox" name="C_pw" value="y" checked>このパスワードを保存する。 </P> </FORM> function myPw(f) {   location.href = f.TB_pw.value + ".htm";   return false; } パスワードが違う時は「ページが見つかりません」というエラーになります。(alertはできませんが、簡単にパスワードがばれてしまうよりは良いでしょう。) パスワードを変えたいときは、top.htm のファイル名を 新パスワード.htm にするだけです。

mirai-r
質問者

補足

ありがとうございました。大変参考になりました。 ちなみに、下の方に書かれた、次のページのファイル名をパスワードにするという方法で、そのパスワードをクッキーか何かを使って、次回から入力せずに済む方法はありますか?

関連するQ&A

  • Enterキーを押しても送信しないようにする

    ユーザーリクエストを受付けるHTMLフォームに 例えばテキストボックスがいくつかあって送信ボタンをクリックするとCGIにパラメータが送信されるという時に、テキストボックスの1つめにデータを入れた後、2つめ以降まだ入力してないのにEnterキーを思わず押してしまって送信されることってありますよね。 Enterキーを押しても送信されないようにすることって出来るのですか。よく、空白のテキストボックスが残っていると、「○○を入力してもう一度送信ボタンをクリックしてください」というエラーメッセージを表示して戻す。という手がありますが、テキストボックスが空白でも、データ送信はできる様にしたいのです。そうするとEnterキーを殺すしか方法が思いつかないのですが・・・

    • ベストアンサー
    • Perl
  • Enterキーで関数を実行@Netscape

    JavaScriptで、テキストボックスを使ったを作っています。 とりあえず、テキストボックスにデータを入れる前でも後でもいいので、Enterを使ってある関数を呼び出したいと思っています。 しかし、JavaScriptの例文を載せてあるサイトによると、そのスクリプトはIEでしか動かないとありました。ためしに、ホントかどうか試してみると本当に動くことはなかったの(FireFoxで)ですが、たとえば、Yahoo!JapanのログインIDを入れるあの画面では、Enterを入力するとちゃんとIDのデータがサーバーに行きます。 あのようなこと(Enterで関数呼び出し)をNetscape系ブラウザでするには、どうしたらいいのでしょうか? 参考URL: http://www.openspc2.org/reibun/javascript/mouse/053/index.html

  • InternetExplorerの操作について

    vbからIE10を操作しています。 テキストボックスにパスワードを入力しログインボタンを押しますが その時テキストボックスにカーソルが無いとログインボタンが押せません。(グレーアウト) テキストボックスをアクティブにする方法は無いでしょうか。 objIE.Document.getElementById("Password").Value = "123456"

  • 画像ボタンでenterキーを有効にしたいのですが、

    画像ボタンでenterキーを有効にしたいのですが、 方法がわからず困っております。 ID、PASSを入力するテキストフィールドが2つあり ログインボタンという感じです。 ボタンを画像にする前はできていたのですが、 画像にしたとたん効かなくなってしまいました。 enterキーを有効にする方法がございましたら お教え頂けないでしょうか。

    • ベストアンサー
    • HTML
  • 「テキストボックス→Enterキー」でページが切り替わらない

    下記のようなフォームを作成しています。 (1)テキストボックスに値を入力する (2)「送信ボタン」またはEnterキーを押す (3)postにテキストボックスで入力した値が代入され、actionで設定したPHPファイルを読み込む (2)のEnterキーを入力したときになにもアクションが起こりません。 考えられる原因や対応方法をお願いします。

    • ベストアンサー
    • PHP
  • エクセルでEnterキーが効かなくなる現象について

    エクセルでEnterキーが効かなくなる現象について エクセル2007で入力フォームを作りました。テキストボックスにデータを入力しEnterキーを押すと、 次のテキストボックスへ移動します。この動作が、たまに、Enterキーを押しても次のテキストボックスへ 移動しなくなります。(他のパソコンでも同じようになります) 理由がわからない為、エクセルを閉じて、再度起動してみたり、パソコン自体を再起動したりすると、正常に動くのですが・・・(1度、VBAの画面で動かすとまた正常になります) どなたかぜひ助けてください。 よろしくお願いします。

  • ENTERキー押下の時に決まったアクションをさせたい

    VP6Learning Editionを使っています。 検索サイト等で、検索ワードを入れた後に「検索」ボタンを押さなくてもENTERキーを押すことにより、検索ボタンを押したことになりますよね。 ああいう風に、テキストボックスに入力した後にENTERキーを押したとき決まったアクションをするように(具体的にはCommand1ボタンが押されたのと同じ動作をさせたい)できないでしょうか。 日本語入力をする際にENTERキーは“決定”の役割をしますが、その時は上に書いたようなアクションをさせたくないのです。

  • Ctrl+Enterなどの複合キーの名称は?

     Ctrl+Enterなどのキーはアクセスキーやショートカットキーなどと、その用い方によって名称が変わります。 前者はマウスを使って、メニューから選択する変わりに用いるキーの名前であり、後者は複数のキー操作を1回のキー操作にするために用いるものです。  ところが、私が知りたいのは上記の2つのような使い方ではないのです。例えば、テキストボックスで文字を 入力していて、Ctrl+Enterを押すと改行になる、といった具合なのです。このような時の複合キーの名称はなんと呼ぶのでしょうか?  よろしくお願いします。

  • Enterキーでログイン

    普通、会員ページなどにログインするときはIDとパスワード入れた後、 Enterキーでログイン出来ますよね? 私もログインコントロールでログインページを作っていて ずっとEnterキーでログインしていたのですが、いつかを境に出来なくなってしまいました。 パスワード入れた時点でEnterを押しても反応しません。 Tab→Enter、もしくはマウスクリックならログイン出来るのですが・・・ これは結構不便だと感じます。 ユーザIDとパスワードをSession変数に格納して、その後のページを振り分けるのに使っているですが、 そのSessionがNullになってしまってるのかな?とも思いますが 何がきっかけでそうなってしまったのか謎なのです。 同じような体験したかた、原因が特定できる方、アドバイスの程よろしくお願いします。 ASP.NET(VB) Visual Web Developer 2005 Express Edition

  • ホームページ内でEnterキー押下時にフォーカスを移動したい

    イントラネットでホームページの管理をしています。 個人認証画面にてユーザー→パスワードを入力してもらい、認証ボタンを押してメインページへ飛ぶ画面があります。 ユーザー入力後にEnterキー押下でパスワードへ、 パスワード入力後にEnterキー押下で認証ボタンへ それぞれフォーカスを移動したいのですが、実現方法がわかりません。 javascriptでfocus()及びblur()を使えばと思いましたが、キー入力イベントの取得方法がわかりません。 ページ先頭にてdocument.onkeydownから取得する方法だと初回のみの取得しか出来ませんでした。 それぞれのオブジェクトでキー入力のイベント判定をしてフォーカスを移動する方法があれば教えてください。 OS :WIN2K ブラウザ:NetScape4.0 PG :HTML(ASP,VBScript,JavaScript)