- ベストアンサー
SHIFT + TABキーの件について
JavaScriptで開発を行っていますが、画面の制御で前項目に戻りたい場合、Escキーを使用して戻ります。 そこで問題なのが、Escキー押下時にevent.keyCodeには何を設定すればいいのかわかりません。どなたか教えて頂けないでしょうか?
- みんなの回答 (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)
これはもう、 history.back(); を使うしかないのでは? もしくは、前のページのアドレスをどこかに保持しておいて location.href="前ページURL"; として前のページに戻す方法ぐらいしか思いつきません。 どうしてもSHIFT+TABキーを発生させたいんでしょうか?
- taseki
- ベストアンサー率66% (155/233)
なるほど、擬似的にShift+Tabを発生させるということですね。 IEに限れば、MSの仕様書を見ると、おっしゃるとおり event.shiftKey は読取専用になってますね。 たとえば sourceIndex を調べて前の項目を focus してはどうでしょう。
- taseki
- ベストアンサー率66% (155/233)
> Escキー押下時にevent.keyCodeには何を設定すればいいのかわかりません alert(event.keyCode); と書けば判ることなのでは?
補足
すみません、説明不足です。Ecsキーのキーコード(27)はわかるのですが、Ecsキー押下時に設定させるSHIFT+TABになるコードがわからないという意味です。 なお、event.shiftKeyに無理矢理trueを設定して、event.keyCodeを9にしたらevent.shiftKeyは設定不可みたいでエラーとなりました。