0
<form action="">
<input id="user_input" onKeyDown="if(event.keyCode == 13)document.getElementById('okButton').click()" >
<input id="okButton" type="button" onclick="JS_function();" value="OK">
</form>

テキストボックス内でEnterキーを押してボタンをクリックできるようにしたい。私のコードでは、テキストボックス内でEnterキーを押すとボタンがクリックされますが、ページが更新されてすべてが再起動した直後に、それを防ぐ理由と方法はありますか?

4

2 に答える 2

1

問題は、Enterキーを押すとフォームが投稿されることだと思います。空のアクション属性があるため、フォームは現在のページに投稿され、リロードのように見えます。

Enter でフォームを投稿するブラウザのデフォルトの動作を防ぐにはfalse、onKeyDown コールバックから戻るようにしてください。

if(event.keyCode == 13) { document.getElementById('okButton').click(); return false; }

.preventDefault()同じことを行うイベントでメソッドを呼び出すこともできます。

単純化して明確にする方法:

okButton をクリックすると が呼び出されるため、ボタンでクリック イベントをトリガーする代わりに、onKeyDown イベントから直接JS_function()呼び出すことができます。JS_function()

<input id="user_input" onKeyDown="if(event.keyCode == 13) { JS_function(); return false; }" >
于 2012-12-23T22:41:35.760 に答える
0

onKeyDown でこれを使用します

if(event.keyCode == 13){event.preventDefault(); document.getElementById('okButton').click();}

投稿のデフォルトのアクションを停止し、[OK] ボタンをクリックするなどの操作を実行できるようにします。

于 2012-12-23T22:41:27.813 に答える