プロが教える店舗&オフィスのセキュリティ対策術

下記のmenu.htmlでテキストボックスに入力をしてからの
Enterキーでタブ移動をしたい。そうすると、テキストボックス
に入力をしてから、連続してのEnterキーで検索が出来て
操作性が高まるので。この様な事はjavascriptで出来るのでしょうか。

下記にmenu.htmlを示します。実は、これ以外も関係をしてい
ますが。質問とは関係が無いので省いています。

menu.htmlの内容
<html>
<head>
<title>メニュー</title>
</head>
<body>
<style>
li.hide{display:none;}
</style>
<input type="text" name="keyword" id="keyword" tabindex=1>
<input type="button" value="choice" onclick="choice()" tabindex=2>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12 …
<script>
$(function(){
$("#target li:last-child a")[0].focus();
$("#target li:last-child a")[0].click();

$("#target a").on('keydown',function(e){
var target_a=$(this);
if(e.keyCode==74){
var target_li=$(this).closest('li').prev('li');
target_a=target_li.length==0?$(this).closest('ol').find('a:eq(-1)'):target_a=target_li.find('a');
}else if(e.keyCode==76){
var target_li=$(this).closest('li').next('li');
target_a=target_li.length==0?$(this).closest('ol').find('a:eq(0)'):target_a=target_li.find('a');
}else if(e.keyCode==75){
$("#keyword").focus();
e.preventDefault();
rerurn ;
}
var aa=target_a.text();
var bb="#"+aa;
$(bb).focus();
$(bb)[0].click();
});
});

function choice(){
var reg=new RegExp(document.getElementById("keyword").value);
var obj=document.getElementById("target").getElementsByTagName("li");
for(var i=0;i<obj.length;i++){
obj[i].className=(obj[i].textContent.match(reg))?"":"hide";
}
}

</script>
<ol id="target">
<li><a href="./150908-1504.html" target="contents" id="150908-1504">150908-1504</a></li>
<li><a href="./150908-1515.html" target="contents" id="150908-1515">150908-1515</a></li>
<li><a href="./150908-1518.html" target="contents" id="150908-1518">150908-1518</a></li>
</ol>
</BODY>
</HTML>

質問者からの補足コメント

  • うーん・・・

    下記の様にして、強制的にキーの値を読んで、
    その内容を変更しても、タブキーとは見なして
    来れません。

    何がおかしいのでしょうか。
    $("#keyword").on('keydown',function(e){
    if (e.keyCode == 13){
    e.keyCode = 9;
    }
    });

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/12/09 15:12
  • うーん・・・

    有難う御座います。
    自己解決しました。

      補足日時:2017/12/09 15:56

A 回答 (1件)

こんにちは。



ご提示のスクリプトでは、既に、ほぼ同様のことを行っていると思います。
(キー入力を判定して、フォーカスを移動)

それなので、ご質問の処理をする同様のルーティンを追加するか、既存のスクリプトを拡張するなりすることで、対応可能なのではないでしょうか。
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難う御座います。

ここでは、エンターキーをタブキーとして
ブラウザに判断をさせたいと言う事です。

結果として、エンターキーを押下しての
タブキーとして機能して、次のタブに
移動をさせたいと言う事です。

ですから、今迄のとは少し違います。

今迄のはキーをそのまま認識しての判断です。

お礼日時:2017/12/09 13:41

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