• ベストアンサー

Backspaceの無効化

Backspaceキーに関して、テキストフィールドにフォーカスしている場合は、通常の削除を行い、フォーカスが外れているときには機能を無効化する(ページ遷移を防止)。 上記のようなことは出来ますでしょうか? 以前の投稿でonkeydownでキーコードを取得し[Backspace]であれば、テキスト最後の1文字を切り取り、基本的にページが戻る機能は無効化しておく。という方法がありましたが、テキストフィールドが沢山ある場合、誤って押した場合等問題があると思うのですが。フォーカス絡みで何とかできないでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

ページ遷移防止は無理なんじゃないでしょうか。 「戻る」の操作は… ALT+←でもできる。 ブラウザのツールバーの戻るボタンもある (ツールバーを消したウィンドウを開いたつもりでも、ブラウザによっては無効になる) 右クリックメニューにもある (右クリック無効のスクリプト自体をブラウザの設定で無効にできたりする) キーボードや多ボタンマウスにブラウジング操作専用のキー/ボタンが付いているタイプもある ブラウザによってはマウスジェスチャーでも操作できる 他にもなにかあるかも。 一般的なwebページの話しじゃなくて展示用パソコン+専用ページとか、上に挙げたような心配が要らないのならまだ望みはあるかもしれないけど。 http://chaichan.web.infoseek.co.jp/qa3500/qa3642.htm こことか参考になるかな?

関連するQ&A

  • GoogleChromeでBackSpace

    GoogleChromeでネットサーフィンしている時にBackSpaceをキーを押すと前のページへ戻りますよね。 しかしこの機能は私は使用せずフォーム入力途中にタイプミスし BackSpaceで文字を消そうとするとたまにページが戻ってしまう事があります。 連射扱いになってしまうのか詳細な原因はわかりません。 個人的にはこの機能は大変不便な物であり要らないのですね。 そこでBackSpaceでページを戻す機能を無効にしたいのですがやり方がわかりません。 Firefoxではアドオンで無効に出来る物がありましたが GoogleChromeの設定箇所、もしくは拡張機能で無効にする方法はないでしょうか? よろしくお願いします。

  • VB6 ユーザーコントロールのフォーカス無効

    現在VB6 SP5にて、テンキーのようなユーザーコントロールを作成しています。 コマンドボタンを配置し、押された場合にキーボードの入力をエミュレートするような作りにしています。 問題は、作成したコントロールをフォームに貼り付けて使用する場合に、マウスでクリックしたキーに応じて、現在フォーカスのあるテキストボックスなどに入力したいのですが、ユーザーコントロールのコマンドボタンにフォーカスが移ってしまい、うまくいきません。 ユーザーコントロールのCanGetFocusプロパティをFalseに設定しようとすると、「フォーカスを取得できないコントロール上に配置された子コントロールは、フォーカスを取得することができません。」とエラーが表示されてFalseにできません。 フォーカスを無効にし、このような機能を実現するには何か良い方法ありますでしょうか?

  • キーコードの取得について

    テキストフィールド入力時、日本語入力モードになっているときのキーコードの取得はできないのですか? ENTERキー押下での確定を (+)キー押下での確定にしたいのですが・・・。 何か方法がありましたら、よろしくお願いします。

  • コンボボックスにキー入力をさせない方法(ACCESS VBA)

    ACCESS VBAでコンボボックスを使ったプログラムを作成しています。 コンボボックスにキー入力(特にdelete、BackSpaceキー)をさせたくありません。 VBではSTYLEプロパティをドロップダウンリストにすれば 可能ですが、VBAで同じようにするプロパティが見つかりません。どなたかご存知でしたら教えてください。 それとも、そもそもそのようなプロパティは用意されていないのでしょうか? そのような場合も考えて、コンボボックスのKeydownイベントでキーコードを拾ってdelete、backspaceキーを無効にしようとも思いましたが、どうしたら無効になるのかわからず、できませんでした。 どなたかよい方法をご存知でしたら教えてください。

  • JavaScriptのキーイベント

    JavaScriptのキーイベント いつもお世話になりますm(__)m Javascriptのキーイベントで教えて下さい。 フォーム上に、テキストボックス(id=A)とセレクトボックス1(id=B)と、セレクトボックス2(id=C)があるフォームがあり、フォーム内の項目移動をキーボードで行いたいと思います。 各項目のkeydownイベントでキーコードを取得して、Aの場合 Enter(13)又は→(39)なら、Bへ ←(37)なら、Cへ 移動するようにキーコードを取得して移動するようにしました。 IEだと問題なく動くのですが、Firefoxだと、矢印キーで移動した時に、移動先のセレクトボックスの値が  ←で動いた場合、セレクトボックスの値が1つ前  →で動いた場合、セレクトボックスの値が1つ後 に変わってしまいます。 (フォーカスは問題なく移動先のセレクトボックスにあります) 移動した後(例えばB.focus()の後)に、まだキーイベントが残っていて、Bにフォーカス移動後に、→キーが押されたような状態っぽいのです。 Firefoxの場合、セレクトボックスにフォーカスがある時、キーボードの左右で値を変更できるので、その辺りが原因と思うのですが、移動時に左右矢印キーのイベントを無効(?)にする事はできないのでしょうか? 雑な書き方で申し訳ありませんが、お詳しい方、是非ともご教授下さいm(__)m 宜しくお願い致します。

  • BackSpaceキーでページが戻ってしまう

    最近よく、こういう文字入力画面で入力中、文字を訂正しようとして普通にBackSpaceキーで削除しようとすると、ページじたいが戻ってしまう時があります。 ただ戻るだけならいいんですが、メールの場合自動送信されてしまう時があって、こうなるととても笑い事では済ませられないです。話が途中で切れてしまい送信相手にも失礼ですから。 これは私がそういうショートカットキーを知らずに押しているんでしょうか。それとも何かの不具合なんでしょうか。 どなたか教えて下さいませ。

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

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

  • 一部Enter無効化の方法を教えてください!

    PHPで作成している画面について、テキストコントロールにフォーカスがある場合に、 Enterキーを押下することで、submitが行われることを無効化させたいと思っています。 <SCRIPT LANGUAGE=javascript> <!-- document.onkeypress = enter; function enter(){ if( window.event.keyCode == 13 ){ return false; } } //--> </SCRIPT> のようなJavaScriptを記述すれば完全にEnterキーを無効にできるようですが、 この状態だと、submitにフォーカスがある状態でEnterキーを押下してもsubmitが実行されません。 この状態を解決する方法をご存知の方、アドバイスをお願いします!! ちなみにブラウザは最低でも、IE6,7とFireFoxには対応したいと思っています。 当方、HTML,PHP,JavaScriptは素人同然ですので、明確な内容で教えて頂けると助かります。 宜しくお願いします!!

  • 貼り付けイベントで値を取得したい

    文字数制限を設けたテキストフィールドで、ヘルプ機能として文字数カウンターをつけています。キー入力の際にonkeydown, onkeyupのイベントでカウントさせていましたが、右クリックのペーストだけはどうにもなりません。 いろいろ調べているとonpaste, onbeforepastといったイベントハンドラが見つかりましたが、これらではペースト前に起動してしまうのでペーストする文字及び文字数が取得できません。 どなたか解決方法を知りませんでしょうか?宜しくお願いします。

  • awtでGUIを作成しているのですがイベントリスナーのことで

    こんばんは。今awtでGUIを作成しています。 テキストフィールドを作成し、入力したあとエンタ―ボタンを押したら桁数チェックなどを行い、妥当な入力であればカーソルを次のテキストフィールドに移動させ、妥当でなければ警告のダイアログボックスをだすアクションリスナーをaddActionListenerで作っていたのですが、 入力を確定させるのは何もエンターキーだけではなく、人によってはタブキーとか次のテキストボックスを選択して確定する人もいるだろうと思い、addFocuslistenerも加えました。以下がその部分です。 field1.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent ae){ String gt_field1=field1.getText(); if(gt_field1.length()==5){keycheck();} else{Tyuui("無効な入力です","5桁の文字を入力してください。");} } } ); field1.addFocusListener( new FocusListener(){ public void focusLost(FocusEvent e){ String gt_field1=field1.getText(); if(gt_field1.length()==5){keycheck();} else{Tyuui("無効な入力です","5桁の文字を入力してください。");} } } ); しかしこのようにしたら、エンターキーを押した時、妥当な入力だったら次のテキストフィールドに移動させるようにしているので、Focuslistenerも反応し、もう一度同じ処理をしてしまいました。妥当な入力でないときは警告のダイアログが2回でてきました。 そこでaddActionListenerのほうにはなにも調べさせず、フォーカスをはずすだけにしたらどうかと思ったのですが、requestFocus()もありますが他のテキストフィールドにフォーカスを当てたらまたおかしな事になりそうなのでただフォーカスをはずし、どこにもフォーカスがあっていない状態にしたいのですが、いい方法とかございましたら教えてはいただけませんか。 またEnterキーを押しただけでなく、Tabキーを押したり、マウスで別のところをクリックしてフォーカスが外れた時も桁チェックなどを行い、妥当な桁なら次のテキストフィールドにフォーカスをあてるいい方法などございましたらアドバイスの方、おねがいします。

    • ベストアンサー
    • Java

専門家に質問してみよう