返回键不在<textarea> </textarea>中工作

时间:2011-03-25 14:31:48

标签: html css textarea key return

我在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>

以下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;

和textarea本身:

height: 360px;

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

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

5 个答案:

答案 0 :(得分:8)

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

$(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });

这一个:

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

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

答案 1 :(得分:6)

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

this.$el.keypress(function(e){
    if(e.which === 13){
        e.preventDefault();
    }
}

13是输入

的按键代码

答案 2 :(得分:3)

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

有关。

当元素包含像textarea这样的东西时,它应该无效。

我建议将其更改为display:inline-block;可能足以解决它。但无论哪种方式,它肯定是你正在做的正确的显示类型。

答案 3 :(得分:3)

在我的情况下,问题是由于使用了White-Space:正常。当我删除它时,问题就消失了。

答案 4 :(得分:2)

除了textarea的结束标记外,您的代码是正确的:

</textarea>