web-dev-qa-db-ja.com

Enterキーを押したときにTextareaの新しい行を無効にする

誰かが押すたびに関数を呼び出しています enter textareaで。今、私はnew lineまたはbreakを無効にします enter が押されます。

new lineは次の場合に機能するはずです shift+enter が押されます。その場合、関数は呼び出されません

Jsfiddleデモは次のとおりです。 http://jsfiddle.net/bxAe2/14/

20
Hassan Sardar

これを試して

$("textarea").keydown(function(e){
// Enter was pressed without shift key
if (e.keyCode == 13 && !e.shiftKey)
{
    // prevent default behavior
    e.preventDefault();
}
});

フィドルを更新する

$(".Post_Description_Text").keydown(function(e){
if (e.keyCode == 13 && !e.shiftKey)
{
  // prevent default behavior
  e.preventDefault();
  //alert("ok");
  return false;
  }
});
36
Scary Wombat

For Angular Usersの場合

既存の実用的なソリューションがありますが、誰かがAngularを使用してこの質問に出くわした場合、次の方法で新しい行を無効にできます。

追加 <textarea ng-trim="false" ng-model='your.model' ...

コントローラーで、以下を追加します。

$scope.$watch('your.model', function(newvalue, oldvalue) {
    if (newvalue && newvalue.indexOf('\n') > -1) {
       $scope.your.model = oldvalue;
    }
});
0
Matt Goodrich
    $(".Post_Description_Text").keypress(function(event) {

      if (event.which == 13) {        

        alert("Function is Called on Enter");

          event.preventDefault(); //Add this line to your code

       }

   });
0
Nirav Thakar