[テキストエリア、テキストファイル、ラジオ、コンボなど] を含む 25 個のコンポーネントがあり、「ENTER」が入力されたときにページを送信する関数を呼び出すようにキーイベントを作成しました。
Enterキーを押すと、本来あるべきではないテキストエリアであっても、ページが送信されます。テキスト領域で押された場合にページを送信できない方法はありますか?
これは IE7 と IE8 でのみ発生します。他のすべてのブラウザで正しく動作します。
[テキストエリア、テキストファイル、ラジオ、コンボなど] を含む 25 個のコンポーネントがあり、「ENTER」が入力されたときにページを送信する関数を呼び出すようにキーイベントを作成しました。
Enterキーを押すと、本来あるべきではないテキストエリアであっても、ページが送信されます。テキスト領域で押された場合にページを送信できない方法はありますか?
これは IE7 と IE8 でのみ発生します。他のすべてのブラウザで正しく動作します。
フォームのデフォルトの動作は、テキストエリアにフォーカスがない限り、ユーザーがフォーム内でEnterキーを押した場合に送信することです。したがって、必要なのはデフォルトの動作です。フォームのキー押下を現在処理しているコードをすべて削除すると、必要なものが得られます。
フォーム全体に「キーイベント」を付けましたか?DOM全体?した場合、それは正常な動作です。
フォーカスが送信ボタンにあるときに「Enter キー」でページを送信する場合は、この機能を onsubmit イベントに適用します。もちろん、必要なすべての検証を実行できます。Enterキーイベントをテキスト領域から除外したいだけの場合は、その瞬間にフォーカスがテキスト領域にあるかどうかを簡単に確認してください。
テキストエリアなどのいずれかが入力されていない/空になっている/設定されていないかどうかをおそらく検出できます。すべてが適切に記入されている場合は、フォームを送信してください。
これがあなたのニーズに合うかどうかはわかりませんが、次のような方法でテキストエリア内のエンターキーを無効にすることができます:
$(document).ready(function(){
$('textarea').keypress(function(e){
var key = (window.event) ? e.keyCode : e.which;
if ( key == 13 ) {
return false;
} else {
return true;
}
})
})