问题
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/
回答1:
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;
}
});
回答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:
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;
}
});
回答4:
use the input
tag instead of textArea
tag in your HTML
来源:https://stackoverflow.com/questions/18779322/disable-new-line-in-textarea-when-pressed-enter