いくつかの入力ボックスとそれに対応する入力ボタンを備えた HTML フォームがあります。最初の入力ボックスに何かを入力して、Enterまたは ボタンを押すと、正常に動作します。しかし、他のボックスを押すEnterと、最初のボックスにあるかのように機能します。ボタンは正常に動作します。
ここに私が持っているコードがあります:
<script type="text/javascript">
function fn (num) {
alert(num);
document.getElementById(num).focus();
}
</script>
</head>
<body>
<form>
<input id="1" type="text"></input> <button onclick="fn(1);">press</button><br/>
<input id="2" type="text"></input> <button onclick="fn(2);">press</button><br/>
<input id="3" type="text"></input> <button onclick="fn(3);">press</button><br/>
</form>
どうやらこれは ECMA の「癖」です (私は FF18.0.1 と Safari 5.1.7 でテストしました)。この癖の修正はありますか?
私が見つけた 1 つの解決策は、入力ボックスごとに 1 つのフォームを追加することです。
<form>
<input id="1" type="text"></input> <button onclick="fn(1);">press</button><br/>
</form>
<form>
<input id="2" type="text"></input> <button onclick="fn(2);">press</button><br/>
</form>
<form>
<input id="3" type="text"></input> <button onclick="fn(3);">press</button><br/>
</form>
これはバグですか、それとも機能ですか? より良い解決策はありますか?提案をありがとう。