1

重複の可能性:
ユーザーが Enter キーを押してフォームを送信できないようにする

簡単なコードをいくつか書きました(ここでテストすることもできます

<form >
       <input id="id2" type='text' />
</form>
$("#id2").keydown(function(e) {
    if (e.keyCode == 13) {
        alert('nope!');
        return false;
    }
});

Enter をクリックすると、「いいえ!」というアラートが表示されます。そして何もありません。しかし、アラート ウィンドウで [OK] をクリックすると、関数が false を返すにもかかわらず、フォームが送信されます。

それは何ですか?javascript で奇妙なマルチスレッド処理が行われていますか? バグ?または...

</p>

4

1 に答える 1

2

keypressイベントではなくイベントを使用しkeydownます。

$("#id2").keypress(function(e) {
    if (e.keyCode == 13) {
        alert('nope!');
        return false;
    }
});

更新されたデモ

于 2012-09-07T11:20:48.757 に答える