2009-07-21 16 views
2

バックスペースは、最後のページに戻るナビゲーションのブラウザホットキーです。入力にフォーカスがあると、このホットキーは無効になります。しかし、私はkeyupとkeydownイベントがこの入力にバインドされており、私が書いた何かがこの問題を引き起こしています。ユーザーがHTMLテキスト入力でバックスペースを入力したときに戻るのを避けるには?

解決方法をご存知ですか?

+0

入力にフォーカスがあり、バックスペースISが後方にナビゲートしているか、そうでないようにしたいのですか?あなたが見ている振る舞いは何ですか? – MadMurf

+0

あなたが書いた何かがこのコードをここに掲載するのが最も良い問題であると思われる場合は、そうでなければ、解決策を決定することはほとんど不可能です。 – MadMurf

+0

正確に。それは戻ってナビゲートしてはいけません。現在、残念ながらそれをやっています。 –

答えて

0

この問題は、onKeyDownイベントを返す前に入力の削除が原因で発生しています。

1

入力要素からイベントを処理した場合、そのイベントのバブリングをキャンセルしてから戻します。

+0

event.preventDefault()またはevent.stopPropagation()はIEとChromeの問題を解決します。しかし、私はまだFirefoxのための解決策を見つけていないhttp://www.quirksmode.org/js/events_order.html –

0

でも

if (event.keyCode==8)//where 8 ascii code of backspace 
{ 
retunr; 
} 
0

あなたは、このような偶然のナビゲーションを防ぐためにwindow.onbeforeunloadイベントにフックしようとすることができ、あなたのonKeyDownメソッドまたはonKeyPressイベントでこれを試してみてください。

あなたが作ることができ
0

  1. あなたがのInputFieldのリスナーを設定し、すべてのKeyDownイベントを見ることができます。
  2. イベントリスナーでは、実際のInputField値を持つバッファ変数を作成できます。

バッファの新しい値がInputFieldの値になり、あなたのhotKeyFunctionを使用すると、InputFieldの新しい値がバッファ値になり、InputFieldが正常に機能します。

1

私はBackspaceキーによって生じるバックアクションを中和する同様の必要性、すなわちを持っていたし、私はそれはあなたを助けることを願っています。このサイト

http://www.webmasterworld.com/javascript/3785986.htm

にソリューションに出くわしました。

0
if (typeof(window.event)!='undefined')//ie 
    {document.onkeydown=function() 
         {var tag_name=event.srcElement.tagName.toUpperCase(); 
         if (tag_name!='INPUT' && tag_name!='TEXTAREA') 
          {return event.keyCode!=8; 
          } 
         }; 
    } 
else //firefox, chrome 
    {window.addEventListener('keydown',function(evt){if (evt.keyCode==8){evt.preventDefault();}}, true); 
    } 
関連する問題