• ベストアンサー

SHIFT + TABキーの件について

JavaScriptで開発を行っていますが、画面の制御で前項目に戻りたい場合、Escキーを使用して戻ります。 そこで問題なのが、Escキー押下時にevent.keyCodeには何を設定すればいいのかわかりません。どなたか教えて頂けないでしょうか?

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

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.4

以下でできました。 Win+IE6でしか検証していません。 また、実用するにはイベントを発生させたエレメントや前項目のチェックなどが必要でしょう。あくまでも参考サンプルとして。 --------------------- <html> <head> <script type="text/javascript"> <!-- function PrevFocus() { if (event.keyCode == 27) { var ElmIndex = event.srcElement.sourceIndex - 1; if (document.all[ElmIndex]) { document.all[ElmIndex].focus(); } } } //--> </script> </head> <body onkeypress="PrevFocus()"> <form> <input type="text" value="text1"> <input type="text" value="text2"> <input type="text" value="text3"> </form> </body> </html>

その他の回答 (3)

  • m035
  • ベストアンサー率44% (38/86)
回答No.3

これはもう、 history.back(); を使うしかないのでは? もしくは、前のページのアドレスをどこかに保持しておいて location.href="前ページURL"; として前のページに戻す方法ぐらいしか思いつきません。 どうしてもSHIFT+TABキーを発生させたいんでしょうか?

  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

なるほど、擬似的にShift+Tabを発生させるということですね。 IEに限れば、MSの仕様書を見ると、おっしゃるとおり event.shiftKey は読取専用になってますね。 たとえば sourceIndex を調べて前の項目を focus してはどうでしょう。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

> Escキー押下時にevent.keyCodeには何を設定すればいいのかわかりません alert(event.keyCode); と書けば判ることなのでは?

inoki_koko
質問者

補足

すみません、説明不足です。Ecsキーのキーコード(27)はわかるのですが、Ecsキー押下時に設定させるSHIFT+TABになるコードがわからないという意味です。 なお、event.shiftKeyに無理矢理trueを設定して、event.keyCodeを9にしたらevent.shiftKeyは設定不可みたいでエラーとなりました。

関連するQ&A