css 回车键在< textarea>

2w3kk1z5  于 2023-04-08  发布在  其他
关注(0)|答案(7)|浏览(188)

我在www.example.com页面上定义的textarea有一个问题asp.net。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;

以及文本区域本身:

height: 360px;

一些用户报告说,虽然他们可以编辑文本区域内的文本,但他们无法获得返回键。
我已经在网上搜索过了,但是找不到这样的例子。如果有人有什么好主意,我很乐意听听。谢谢。

oyxsuwqo

oyxsuwqo1#

要添加到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;
    }
  });

这将允许文本区域具有回车(新行),仍然防止回车键用于其余部分。

2g32fytz

2g32fytz2#

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

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

13是回车的按键代码

sqougxex

sqougxex3#

在我的例子中,这个问题是由于使用了空白:正常。当我把这个取下来的时候,问题就消失了。

4c8rllxm

4c8rllxm4#

我从来没有听说过这样的事情,但我的猜测是,这将与display:inline;
当元素包含类似textarea的内容时,这不应该有效。
我建议把它改为display:inline-block;。这可能就足够解决它了。但无论哪种方式,它都绝对是正确的显示类型。

dphi5xsq

dphi5xsq5#

您的代码是正确的,除了文本区域的结束标记:

</textarea>
nkhmeac6

nkhmeac66#

$('#Body').keypress(function(e) {
  if (e.keyCode == 13) {
    e.preventDefault();
    this.value = this.value.substring(0, this.selectionStart) + "" + "\n" + this.value.substring(this.selectionEnd, this.value.length);
  }
});
zed5wv10

zed5wv107#

一些答案提到了preventDefault方法,但不要将搜索限制在此,因为其他JavaScript也可能是罪魁祸首。
例如,您可能有一个表单元素,看起来类似于:
<form onkeydown="return event.keyCode != 13">
这将导致窗体上的 allTextAreas忽略Enter键。
这就引出了另一个问题:通过在同一个页面或另一个页面上创建另一个准系统TextArea来减少问题,看看它是否表现出相同的问题。这样做通常有助于缩小原因范围。

相关问题