我有一些继承的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;
}