.Net为具有“ DefaultButton”属性集的表单生成的代码包含不良的javascript,该JavaScript允许该功能在IE中运行,但不能在其他浏览器(特定于Firefox)中运行。按下Enter键确实会向所有浏览器提交表单,但是当Firefox在控件内部发生时,Firefox无法忽略该按键。结果是一个多行文本区域控件,在Firefox中不能为多行,因为Enter键提交表单而不是创建新行。有关该错误的更多信息,请read it here。可以在Asp.Net 3.0+中修复此问题,但仍必须为2.0创建解决方法。对于最简单的解决方法(黑客看起来不像黑客= D)有什么想法吗?上面链接中的解决方案使我有些害怕,因为它很容易产生意想不到的副作用。 最佳答案 我使用从codesta改编的此功能。 [编辑:我看到的是同一个人,这吓到你了!哎呀。那就帮不了你。http://blog.codesta.com/codesta_weblog/2007/12/net-gotchas---p.html。您可以像这样用div包围代码来使用它。您可以将Form子类化,以自动包含它。我没有用太多,所以没有。')”> (您的表格在这里)这是功能。功能FireDefaultButton(事件,目标){ // srcElement适用于IE var element = event.target || event.srcElement; 如果(13 == event.keyCode &&!(element &&“ textarea” == element.tagName.toLowerCase())) { var defaultButton; defaultButton = document.getElementById(target); 如果(defaultButton &&“ undefined”!= defaultButton.click的类型) { defaultButton.click(); event.cancelBubble = true; 如果(event.stopPropagation) event.stopPropagation(); 返回false; } } 返回true;}
08-19 03:58