テキストボックスにカーソルが当たっている状態でEnterを押すと
画面が再表示されてしまうという現象が起きます。
まだ再現法則が分かっていない状態なのですが、似たような現象が起こった方いらっしゃいましたら
原因等を教えていただきたいのですが。
// 再現ソース
/**************************************************************/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>TEST</title>
</head>
<body>
<form name="form1">
<center>
<p>
<input type="radio" name="radio1">ラジオ1
<input type="radio" name="radio1">ラジオ2
<input type="radio" name="radio1">ラジオ3
<br>
<input maxlength="8" size="12" type="text" name="text1">
</p>
</center>
</form>
</body>
</html>
/**************************************************************/
サーバー側に上記ソースをおいて、
text1にカーソルを合わせEnterを押すと再表示されます。
ちなみに
<input maxlength="8" size="12" type="text" name="text1">
の下に
<input maxlength="8" size="12" type="text" name="text2">
を作成すると、両方のtextボックスにおいてEnter押下後は再表示されません。
よろしくお願いします。
"テキストボックス上でエンターを押すと、
フォーム(<form>)がサブミットされる仕様になっているらしい"
という文面をどこかで見かけたことがあります。
多分、テキストボックスが1コの場合のみ、このような動作に
なるのでしょう。
これを踏まえて今回の現象を説明すると、
<form>にaction(次のページ)が指定されていないため、暗黙のうちに
表示中のページがactionに設定されて、サブミット動作が再表示に見える
ということでしょう。
<html>
<head><title>テストサブミット</title>
<script language="javascript">
<!--
function testsubmit(){
document.testform.submit();
}
//-->
</script>
</head>
<body>
<form name="testform" method="get" onSubmit="return(false);">
<input type="text" name="aa">
<input type="button" value="testsubmit" onClick="testsubmit();">
</form>
</body>
</html>
以上のように、
onSubmit="return(false);" を付けて、送信はスクリプトで実行してこの現象を回避したことがあります。
なるほど。
そんな仕様があるのですね。
確かにテキストボックスでEnterを押してsubmit処理が出来たら、tabでボタンに移動しない分楽ですよね。
Malicさんの方法によって回避したいと思います。
どうもありがとうございました。