我有一些继承的C#/ asp.net代码,其中有一个文本框,我想将其做成多行。我这样做是通过添加textmode =“ multiline”来实现的,但是当我尝试插入换行符时,Enter键将提交表单:P

我四处搜寻,似乎默认行为应该是输入(或控制输入)插入换行符。就像我说的那样,我继承了代码,所以我不确定是否有JavaScript在胡闹,或者我只是要做一个简单的asp.net。

最佳答案

事实证明,这是Firefox + ASP.NET的错误,其中为defaultButton东西生成的javascript在Firefox中不起作用。我必须按照here所述替换WebForm_FireDefatultButton函数:

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;
}

10-05 21:32