テキストボックスからEnterキーでボタンにフォーカスを移したいと思い以下のように記述しました。
IEでは動作したのですがFirefoxでは動きません。いろいろ調べてevent.keyCodeが使えない場合があるというようなことがわかり、いろんなところからサンプルを引っ張ってくっつけたのですがうまくいきません。
1.どこがいけないのか
2.どうしたら動くのか
を教えてください。参考になるURLでもかまいません。よろしくお願いします。
<input id="comment" size="80" onkeypress="return myKeyPress(event);" type="textbox">
<input id="insertButton" onclick="test()" type="button" value="コメント">
function myKeyPress(event){
var strUA = "";
strUA = navigator.userAgent.toLowerCase();
if(strUA.indexOf("firefox") != -1){ //ブラウザの判定
var browser=0;
}else if(strUA.indexOf("msie") != -1){
var browser=1;
}
if(browser==0){ //firefox用
if(event.charCode == 13){
document.getElementById("insertButton").focus();
}
}else{ //IE用
if(event.keyCode == 13){
document.getElementById("insertButton").focus();
}
}
}
No.2ベストアンサー
- 回答日時:
ちなみにこんなのはどうでしょう?
ボタンはSHIFT+ENTERになります!
ほかでは、ユーザーインターフェースを変えるべきではない!と
怒られますが、ここの板では攻撃する人が少ないようなので・・・
enterをtabに変えるものを以前は使ってました。
このことについては、他の方の意見も聞いてみてください
<html>
<input type="text"><br>
<input type="hidden">
<input type="radio" name="a">A /
<input type="radio" name="a">B (カーソルで)<br>
<input type="button" value="SHIFT+ENTER" onClick="alert('ok')"><br>
<input type="checkbox">スペースキーで<br>
<script>
document.body.onkeypress = nextFocus;
function nextFocus(e){
var obj = e ? e.target: event.srcElement;
var evt = e ? e: window.event;
switch( evt.keyCode ){
case 13:
if(evt.shiftKey && ( obj.type == 'button') || ( obj.type == 'reset' ) || (obj.type=='submit') )return;
var elms = document.getElementsByTagName('input');
for( var i=0, m=elms.length; i<m; i++){
if( elms[i] == obj ){
do{ i=(++i)%m; }while(elms[i].type=='hidden')
elms[i].focus();
return false;
}
}
case 27: obj.blur(); break;
}
}
</script>
</body>
</html>
ご回答ありがとうございます。
こういうやり方もあるのですね!勉強になります☆
今回はコードが簡潔なNo.1さんのものを使わせていただきました。
No.1
- 回答日時:
eventじゃなくてevent.keyCodeを送っちゃう!
よってブラウザ判定は意味をなさず
function myKeyPress(kcode){
if(kcode == 13) document.getElementById("insertButton").focus();
}
<input id="comment" size="80" onkeypress="return myKeyPress(event.keyCode);" type="text">
ご回答ありがとうございます!
こんなに簡単にできるんですね☆
恥ずかしながら初心者のため自分でつぎはぎしたコードも理解できていません。なので何が悪かったのかもよくわかっていません↓↓
もしお時間があったら、なぜeventだけだとできなくてevent.keyCodeを送るとできるのか教えていただけると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript jsで質問です。 ボタンが二つ存在し、両方のボタンがクリックされたことをチェックしたいのですが、どの 4 2022/11/22 10:30
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスのON/OFFでVal...
-
JSP内で可変するチェックボック...
-
プルダウン選択を変更すると、...
-
onchangeイベントを強制的に発...
-
select要素のvalueを配列で取得...
-
度胸試しのJavaScript
-
動的なセレクトボックスの生成...
-
プルダウン 項目が多いので先頭...
-
return trueとreturn falseの用...
-
<JavaScript>tableタグを入力不...
-
メールフォーム:「必須項目」...
-
画面表示とともにtableの指定の...
-
正規表現で複数マッチ条件で悩...
-
フォームの入力チェックをする...
-
テキストボックス入力を半角英...
-
Selectボックスの一覧表示方法
-
innerHTML内では改行は禁止?
-
jQuery セレクトボックスで選択...
-
TextBoxに半角数字以外を入れた...
-
jQueryで合計を出したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jsp/Java】チェックボックス...
-
チェックボックスのON/OFFでVal...
-
checkboxをクリックしてリロー...
-
チェックボックスに全てチェッ...
-
JSP内で可変するチェックボック...
-
確認ページからフォームページ...
-
チェックボックスのON/OFFに応...
-
Objective-Cでチェックボックス...
-
EclipseでSpringを使用し、テー...
-
チェックボックスの設定
-
スクリプト内でチェックボック...
-
チェックボックスで合計値を計...
-
背景色を変えて未入力チェック...
-
チェックボックスのグループ化...
-
オフになっているチェックボッ...
-
checkboxの選択数制限と排他処...
-
複数のチェックボックス項目が...
-
Nameは配列で、チェックされた...
-
jquery 診断コンテンツにチェッ...
-
チェックボックスでor検索
おすすめ情報