0

[テキストエリア、テキストファイル、ラジオ、コンボなど] を含む 25 個のコンポーネントがあり、「ENTER」が入力されたときにページを送信する関数を呼び出すようにキーイベントを作成しました。

Enterキーを押すと、本来あるべきではないテキストエリアであっても、ページが送信されます。テキスト領域で押された場合にページを送信できない方法はありますか?

これは IE7 と IE8 でのみ発生します。他のすべてのブラウザで正しく動作します。

4

4 に答える 4

0

フォームのデフォルトの動作は、テキストエリアにフォーカスがない限り、ユーザーがフォーム内でEnterキーを押した場合に送信することです。したがって、必要なのはデフォルトの動作です。フォームのキー押下を現在処理しているコードをすべて削除すると、必要なものが得られます。

于 2009-10-28T09:08:56.627 に答える
0

フォーム全体に「キーイベント」を付けましたか?DOM全体?した場合、それは正常な動作です。

フォーカスが送信ボタンにあるときに「Enter キー」でページを送信する場合は、この機能を onsubmit イベントに適用します。もちろん、必要なすべての検証を実行できます。Enterキーイベントをテキスト領域から除外したいだけの場合は、その瞬間にフォーカスがテキスト領域にあるかどうかを簡単に確認してください。

于 2009-10-28T09:00:49.077 に答える
0

テキストエリアなどのいずれかが入力されていない/空になっている/設定されていないかどうかをおそらく検出できます。すべてが適切に記入されている場合は、フォームを送信してください。

于 2009-10-28T07:11:43.867 に答える
0

これがあなたのニーズに合うかどうかはわかりませんが、次のような方法でテキストエリア内のエンターキーを無効にすることができます:

$(document).ready(function(){
 $('textarea').keypress(function(e){
  var key = (window.event) ? e.keyCode : e.which;
  if ( key == 13 ) {
   return false;
  } else {
   return true;
  }
 })
})
于 2009-10-28T15:06:25.740 に答える