返回键不在<textarea>中工作

Mil*_*esh 5 html css textarea return key

我有一个在asp.net页面上定义的textarea的问题.textarea填充在后端,直接从mssql数据库读取文本.

<div id="emailForm" runat="server" style="display:inline;">
  <textarea name="Body" id="Body" rows="20" cols="20">
     text in here
  <textarea>
</div>
Run Code Online (Sandbox Code Playgroud)

以下CSS应用于emailForm div:

padding: 5px;
width: 750px;
font-family: Lucida Sans, Verdana, Arial, Helvetica, sans-serif;
font-size: 0.9em;
margin: 0px 0px 10px 0px;
border: 2px solid #ccc;
Run Code Online (Sandbox Code Playgroud)

和textarea本身:

height: 360px;
Run Code Online (Sandbox Code Playgroud)

一些用户报告说,虽然他们可以编辑textarea中的文本,但他们无法获得返回键的功能.新线路无法添加?

我在网上搜索,但无法找到这种情况的一个例子.如果有人有任何我想听的好主意.谢谢.

hap*_*dik 9

要添加到Christoffer的答案,如果您遇到同样的问题,可以通过替换以下代码来解决它:

$(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
Run Code Online (Sandbox Code Playgroud)

这一个:

$(window).keydown(function(event){
    if((event.which== 13) && ($(event.target)[0]!=$("textarea")[0])) {
      event.preventDefault();
      return false;
    }
  });
Run Code Online (Sandbox Code Playgroud)

这将允许textarea进入(新行),仍然阻止其余的回车键.


Chr*_*fer 6

有同样的问题,但发现是因为我在表单上有一个.preventDefault() - 最初是为了阻止输入提交表单.

this.$el.keypress(function(e){
    if(e.which === 13){
        e.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)

13是输入的按键代码

  • 这发生在我身上几次,我通常在上面添加这个 preventDefault `if(e.target.tagName.toLowerCase() == 'textarea'){ return }` (3认同)

Spu*_*ley 3

我以前从未听说过这样的事情,但我的猜测是这与display:inline;

当元素包含文本区域之类的内容时,这不应该有效。

我建议将其更改为display:inline-block;. 这可能足以解决它。但无论哪种方式,它绝对是适合您正在做的事情的正确显示类型。