2016-12-16 6 views
2

私は、複数のテキストボックス、テキストエリア、ボタンを持つフォームを持っています。 任意のテキストボックスでEnterキーを押すと、フォームが送信されます。だから私は、テキストボックスとテキストエリアとボタンで有効にするために押すだけを無効にしたい。 私は解決策を見つけましたが、彼らは私のjqueryバージョンでは動作していないより高いjqueryバージョンを使用していました。 以下は私が書いたコードですが、ボタンではなくテスト領域に入ることができます。 私は、jQuery 1.3.1またはjavaスクリプトにのみアクセスできます。 このコードを修正するのを手伝ってください。フォームを送信するにはEnterを無効にしてください

$(document).keydown(function(e) { 
    var element = e.target.nodeName.toLowerCase(); 
    var element1 = e.target; 
    alert(element1); 
    if (element != 'textarea') { 
     if (e.keyCode === 13) { 
      return false; 
     } 
    } 
}); 

ここでは、Enterキーを完全に無効にしたくないです。私はテキストボックスでのみ無効にしたい。

+1

FYI、それはそのイベントを結合することは極めて非効率的な方法です。このような場合は、すべての入力の共通の親を見つけてそこにイベントを割り当てるのが最善です。 – War10ck

+0

@ acarroz5マークされた質問は完全に無効にすることができます。それは私の問題を解決しません。その別の質問。助けてください –

+0

どのようにフォームを提出していますか? AJAX呼び出しを介して、またはPHPスクリプトを介して? – midda25

答えて

4
$(function() { 
    $('input[type=text]').keypress(function(event) { 
    if (event.keyCode == 13) { 
     event.preventDefault(); 
    } 
    }); 
}); 

Jsのフィドル:https://jsfiddle.net/bikrampahi/f0gxev76/

+0

Bikramは、テキストボックスでも入力を中止していません。私はjqueryバージョン1.3.2を持っています。それは限界かもしれない? –

+0

このコード内のALERTは、テキスト領域にENTERを置いているときに呼び出されません。 –

+0

私はこのように多くの時間を実装しています。あなたのjqueryバージョンで動作していない場合、私は数分で私の答えを確認して更新します。 –

0

フォーム要素に次の属性を追加しますが、フォームにはテキストエリアが存在しない場合に限ります。

onkeypress="return event.keyCode != 13;" 

フィドル:https://jsfiddle.net/uffbost5/1/

+0

あなたがテキストエリアを持っている場合、それは動作しません! – Craig

関連する問題