一回も披露したことのない豆知識

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

A 回答 (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>
    • good
    • 0

これはもう、


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

なるほど、擬似的にShift+Tabを発生させるということですね。


IEに限れば、MSの仕様書を見ると、おっしゃるとおり event.shiftKey は読取専用になってますね。
たとえば sourceIndex を調べて前の項目を focus してはどうでしょう。
    • good
    • 0

> Escキー押下時にevent.keyCodeには何を設定すればいいのかわかりません



alert(event.keyCode);

と書けば判ることなのでは?

この回答への補足

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

補足日時:2005/07/20 20:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報