Disable New Line in Textarea when Pressed ENTER

2019-01-15 06:08发布

I am calling a function whenever someone press enter in the textarea. Now I want to disable new line or break when enter is pressed.

So new line should work when shift+enter is pressed. In that case, the function should not be called.

Here is jsfiddle demo: http://jsfiddle.net/bxAe2/14/

4条回答
男人必须洒脱
2楼-- · 2019-01-15 06:54

try this

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

update your fiddle to

$(".Post_Description_Text").keydown(function(e){
if (e.keyCode == 13 && !e.shiftKey)
{
  // prevent default behavior
  e.preventDefault();
  //alert("ok");
  return false;
  }
});
查看更多
趁早两清
3楼-- · 2019-01-15 06:55

use the input tag instead of textArea tag in your HTML

查看更多
该账号已被封号
4楼-- · 2019-01-15 06:59
    $(".Post_Description_Text").keypress(function(event) {

      if (event.which == 13) {        

        alert("Function is Called on Enter");

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

       }

   });
查看更多
欢心
5楼-- · 2019-01-15 07:01

For Angular Users

While there are existing working solutions, if anyone comes across this question using Angular, you can disable new lines with the following:

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

In your controller, add:

$scope.$watch('your.model', function(newvalue, oldvalue) {
    if (newvalue && newvalue.indexOf('\n') > -1) {
       $scope.your.model = oldvalue;
    }
});
查看更多
登录 后发表回答