按下ENTER键时禁用Textarea中的新行

时间:2013-09-13 06:04:31

标签: textarea newline enter shift

每当有人在textarea 时,我就会调用一个函数。现在,我想在按下 时禁用new linebreak

当按下 shift + enter 时,new line应该有效。在这种情况下,函数不应该被调用。

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

6 个答案:

答案 0 :(得分:34)

试试这个

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

答案 1 :(得分:2)

下面的代码是为了防止调整“textarea”的大小,避免在textarea内滚动条,也防止按下回车键时进入下一行。

style.css

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

index.html

<textarea></textarea>

Script.js

$("textarea").keydown(function(e){
    // Enter pressed
    if (e.keyCode == 13)
    {
        //method to prevent from default behaviour
        e.preventDefault();
    }
});

答案 2 :(得分:0)

    $(".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 :(得分:0)

对于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;
    }
});

答案 4 :(得分:0)

React:带有值和 onChange 事件的 textarea

const PreventTextAreaEnter = () => {
   const [comment, setComment] = useState();

   const handleTextArea = (e) => {
      console.log({e}) // Destructure to get a more accurate log 

      // Return if user presses the enter key
      if(e.nativeEvent.inputType === "insertLineBreak") return;

      setComment(e.target.value);
   };

   return (
    <>
      <textarea value={comment} onChange={ (e) => { handleTextArea(e) } />
    </>
   )
  }

答案 5 :(得分:-3)

在HTML

中使用%20代码而不是input代码