将新行字符添加到textarea而不是提交表单

时间:2012-12-24 10:50:12

标签: javascript jquery html textarea

我有一个带有文本区域的表单,然后点击回车键提交我的表单。如何使其添加新的行字符而不是表单提交。

7 个答案:

答案 0 :(得分:27)

$('textarea').keypress(function(event) {
   if (event.which == 13) {
      event.stopPropagation();
   }
});​

JSFiddle Demo

答案 1 :(得分:2)

这应该有帮助

$('#myProblematicForm textarea').keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    this.value = this.value + "\n";
  }
});

对于它的价值,我在OS X上使用Chrome并且输入在textarea中为我插入\n并且提交表单默认值。

答案 2 :(得分:1)

你可以试试这段代码:

$(document).ready(function() {
  $("textarea").keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
});

答案 3 :(得分:1)

$(document).ready(function() {
  $('textarea').keydown(function(event){
    if (event.keyCode == 13) {
      event.preventDefault();
      var s = $(this).val();
      $(this).val(s+"\n");
    }
  });
});

答案 4 :(得分:1)

以前的答案不会处理拆分textarea的当前值,只需添加一个新行字符。 以下操作可以阻止事件冒泡到表单,并且仍然允许在'输入'上进行典型的textarea行为。

$('textarea').keydown(function(event) {
  if (event.keyCode === 13) {
    event.stopPropagation();
  }
});

答案 5 :(得分:1)

这对我有用

$(document).keypress(function(e) {
if(e.which == 13) {
    if(document.activeElement.tagName != "TEXTAREA") {
        e.preventDefault();
    };
  }
})

答案 6 :(得分:1)

  dfTest.createOrReplaceTempView("testTable") 

  case class testclass (a:Int,b:String){
     var result = 0    
     def mathAdd ={
        if (b=="apple"){
           result=a+1
        } else{
           result=a+2
   // but how to put 'var result' into a column? 
     }
   }  
 }

 var toTestClass = sqlContext.table("testTable").as[testclass] 
 toTestClass.mathAdd()
 //After this how can I convert this testclass back to dataframe?  

这可以通过我上面给出的jquery代码来完成。必须注意,当您在HTML输入字段的代码之前编写上述脚本时,必须使用就绪函数,而在输入字段代码之后编写它时则不必。如果它不起作用,请尝试使用\ t代替\它会起作用。