Отключить новую строку в Textarea при нажатии клавиши ENTER

Я вызываю функцию всякий раз, когда кто-то нажимает enter в textarea. Теперь я хочу отключить new line или break при нажатии enter.

Итак, new line должен работать, когда нажата кнопка shift + enter. В этом случае функция не должна вызываться.

Вот демон jsfiddle: http://jsfiddle.net/bxAe2/14/

Ответ 1

попробуйте это

$("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;
  }
});

Ответ 2

    $(".Post_Description_Text").keypress(function(event) {

      if (event.which == 13) {        

        alert("Function is Called on Enter");

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

       }

   });

Ответ 3

используйте тег input вместо тега textArea в своем HTML

Ответ 4

Для Angular Пользователи

Если существуют существующие рабочие решения, если кто-то сталкивается с этим вопросом с помощью 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;
    }
});