- PR -

Key制御

1
投稿者投稿内容
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-10-05 13:06
JSPでJavaScriptを使って、EnterKey制御をしています。

Formタグの中のテキストボックスでEnterKeyを押した場合に、同Form内の実行ボタンに
フォーカスを移したいのですが、フォーカスが移った直後にSubmitされてしまいます。
ボタンsubmitではなくbuttonにしてますが、EnterKeyに反応してしまいます。
また、オートコンプリートをOFFにしてみましたがだめでした。
完全にJavaScriptの話のような気がしますが、よろしくお願いします。

コード:

<!--
function okd(){
if((window.event.keyCode==13) || (window.event.keyCode==9)){
if(event.srcElement.name=="input"){
if(window.event.keyCode==13){
document.form1.sbm.focus();
}
}else if(event.srcElement.name=="sbm"){
if(window.event.keyCode==13){
document.form1.sublit();
}
}
}
}
// -->
</script>

<form name="form1" onKeyDown="okd()" method="post">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#666666">
<tr align="center">
<td width="350" align="center">入力フィールド</td>
</tr>
<tr align="center">
<td width="350" height="20" align="right">
<div align="right">
<input name="input" type="text" id="txtinput" size="70" tabindex="11">
</div>
</td>
<input type="hidden" name="updrow" value="0">
</tr>
</table>
</td>
<td>
<table border="0" cellpadding="5">
<tr valign="bottom">
<td>
<input type="button" onClick="formUpdata();" name="sbm" tabindex="12" value="実行">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>





[ メッセージ編集済み 編集者: カウンター 編集日時 2004-10-05 13:14 ]
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-10-05 13:10
タブキーをフォーカス移動に割り当ててみるとか・・・
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-10-05 13:27
コブラさん、ありがとうございます。
以下のようにタブキーにフォーカス移動を割り当ててみたのですが、結果は同じでした。
ちなみに、最初の投稿の状態でタブキーによるフォーカス移動は問題なく動いています。

コード:
if(event.srcElement.name=="input"){
	if(window.event.keyCode==13){
		document.form1.sbm.focus();
	}else if(window.event.keyCode==9){
		document.form1.sbm.focus();
	}
}

コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-10-05 14:00
素人考えで申し訳無い。

コード:
if(event.srcElement.name=="input"){
<!---- タブでフォーカス移動してるから、もうこのコードは要らんのでは?
    if(window.event.keyCode==13){
        document.form1.sbm.focus();
    }else
---!> 
    if(window.event.keyCode==9){
        document.form1.sbm.focus();
    }
}



どうでっしゃろ?
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-10-05 14:11
引用:

コブラさんの書き込み (2004-10-05 14:00) より:
素人考えで申し訳無い。

コード:
if(event.srcElement.name=="input"){
<!---- タブでフォーカス移動してるから、もうこのコードは要らんのでは?
    if(window.event.keyCode==13){
        document.form1.sbm.focus();
    }else
---!>     if(window.event.keyCode==9){
        document.form1.sbm.focus();
    }
}



どうでっしゃろ?



こぶらさん、たびたびありがとうございます。

EnterKeyでもフォーカス移動したいので、必要なんです。
soluna
ベテラン
会議室デビュー日: 2004/06/15
投稿数: 59
投稿日時: 2004-10-05 14:17
このスレッドに書いてある方法を参考にしてみれば?
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-10-05 14:48
引用:

solunaさんの書き込み (2004-10-05 14:17) より:
このスレッドに書いてある方法を参考にしてみれば?


ありがとうございます。
あわせてこのスレッドを参考に解決しました。

FormにonSubmit="return false"を追加して、入力項目でEnterKeyが押されたときに
フォーカス移動してからFormにfalseを返すようにしました。
1

スキルアップ/キャリアアップ(JOB@IT)