关于换行符:按ENTER时禁用Textarea中的换行符

Disable New Line in Textarea when Pressed ENTER

每当有人按textarea中的enter时,我都会调用一个函数。现在我想在按enter时禁用new linebreak

因此,当按shift enter时,new line应该可以工作。在这种情况下,不应调用该函数。

这是jsfiddle演示:
http://jsfiddle.net/bxAe2/14/


试试这个

1
2
3
4
5
6
7
8
$("textarea").keydown(function(e){
// Enter was pressed without shift key
if (e.keyCode == 13 && !e.shiftKey)
{
    // prevent default behavior
    e.preventDefault();
}
});

将您的小提琴更新为

1
2
3
4
5
6
7
8
9
$(".Post_Description_Text").keydown(function(e){
if (e.keyCode == 13 && !e.shiftKey)
{
  // prevent default behavior
  e.preventDefault();
  //alert("ok");
  return false;
  }
});


下面的代码是为了防止调整" textarea"的大小,避免在textarea内滚动条,并防止在按Enter键时进入下一行。

style.css

1
textarea {height:200px; width:200px;overflow:hidden;resize: none;}

index.html

1
<textarea></textarea>

Script.js

1
2
3
4
5
6
7
8
$("textarea").keydown(function(e){
    // Enter pressed
    if (e.keyCode == 13)
    {
        //method to prevent from default behaviour
        e.preventDefault();
    }
});

对于Angular用户

虽然存在现有的解决方案,但是如果有人使用Angular遇到此问题,则可以使用以下命令禁用新行:

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

在您的控制器中,添加:

1
2
3
4
5
6
$scope.$watch('your.model', function(newvalue, oldvalue) {
    if (newvalue && newvalue.indexOf('\
') > -1) {
       $scope.your.model = oldvalue;
    }
});

1
2
3
4
5
6
7
8
9
10
11
    $(".Post_Description_Text").keypress(function(event) {

      if (event.which == 13) {        

        alert("Function is Called on Enter");

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

       }

   });

在HTML

中使用input标记而不是textArea标记