Отключить новую строку в 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;
}
});