首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在asp.net多行文本框控件中按enter键插入换行符

在asp.net多行文本框控件中按enter键插入换行符
EN

Stack Overflow用户
提问于 2008-08-27 14:12:31
回答 8查看 21.6K关注 0票数 3

我有一些我继承的C# / asp.net代码,它有一个文本框,我想让它多行。为此,我添加了textmode="multiline“,但当我尝试插入新行时,enter键却提交了表单:P

我用谷歌搜索了一下,似乎默认的行为应该是enter (或control-enter)插入一个换行符。就像我说的,我继承了代码,所以我不确定是不是有javascript在胡乱修改,还是只有一件简单的asp.net事情需要我去做。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-08-28 14:16:02

事实证明,这是火狐+ ASP.NET的一个错误,为defaultButton内容生成的javascript在火狐中不起作用。我必须按照here的描述为WebForm_FireDefatultButton函数添加一个替代函数

代码语言:javascript
代码运行次数:0
运行
复制
function WebForm_FireDefaultButton(event, target) {
    var element = event.target || event.srcElement;
    if (event.keyCode == 13 &&
    !(element &&
    element.tagName.toLowerCase() == "textarea"))
    {
        var defaultButton;
        if (__nonMSDOMBrowser)
        {
            defaultButton = document.getElementById(target);
        }
        else
        {
            defaultButton = document.all[target];
        }
        if (defaultButton && typeof defaultButton.click != "undefined")
        {
            defaultButton.click();
            event.cancelBubble = true;
            if (event.stopPropagation)
            {
                event.stopPropagation();
            }
            return false;
        }
    }
    return true;
}
票数 4
EN

Stack Overflow用户

发布于 2008-08-27 14:22:39

我创建了一个带有TextBox和按钮的示例页面,它对我来说工作得很好:

代码语言:javascript
代码运行次数:0
运行
复制
<asp:TextBox runat="server" ID="textbox1" TextMode="MultiLine" />
<br />
<br />
<asp:Button runat="server" ID="button1" Text="Button 1" onclick="button1_Click" />

因此,它很可能取决于您设置的其他属性,或者窗体上的其他控件。

编辑:只有当TextBox失去焦点时才会触发TextChanged事件,所以这不是问题所在。

票数 1
EN

Stack Overflow用户

发布于 2008-08-27 15:02:12

我在任何地方都找不到"WebForm_FireDefaultButton“javascript,它是asp.net生成的吗?

是。

它是为支持窗体和/或包含控件的面板的DefaultButton功能而生成的。这是它的来源:

代码语言:javascript
代码运行次数:0
运行
复制
function WebForm_FireDefaultButton(event, target) {
  if (event.keyCode == 13) {
    var src = event.srcElement || event.target;
    if (!src || (src.tagName.toLowerCase() != "textarea")) {
      var defaultButton;
      if (__nonMSDOMBrowser) {
        defaultButton = document.getElementById(target);
      }
      else {
        defaultButton = document.all[target];
      }
      if (defaultButton && typeof (defaultButton.click) != "undefined") {
        defaultButton.click();
        event.cancelBubble = true;
        if (event.stopPropagation) event.stopPropagation();
        return false;
      }
    }
  }
  return true;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档