fra*_*der 5 asp.net firefox textarea webforms
具有"DefaultButton"属性集的表单的.Net生成的代码包含较差的javascript,允许该功能在IE中工作,但在其他浏览器中不起作用(特别是Firefox).
点击回车密钥确实提交了所有浏览器的表单,但Firefox在<textarea>控件内发生时无法忽略按键.结果是多行文本区域控件在Firefox中不能是多行,因为输入键提交表单而不是创建新行.
有关该错误的更多信息,请在此处阅读.
这可以在Asp.Net 3.0+中修复,但仍然需要为2.0创建一个解决方法.
对于最轻微的解决方法的任何想法(一个看起来不像黑客的黑客= D)?上面链接中的解决方案让我有点害怕,因为它很容易产生意想不到的副作用.
我使用这个改编自codesta的函数。[编辑:同一个,我明白了,这让你害怕!哎呀。那我帮不了你了。]
http://blog.codesta.com/codesta_weblog/2007/12/net-gotchas---p.html。
您可以通过像这样用 div 包围您的代码来使用它。您可以对表单进行子类化以自动包含此内容。我用的不多,所以没用。
<div onkeypress="return FireDefaultButton(event, '<%= aspButtonID.ClientID %>')"> (您的表格位于此处) </div>
这是函数。
函数 FireDefaultButton(事件,目标) { // srcElement 适用于 IE var 元素 = event.target || 事件.srcElement; if (13 == event.keyCode && !(element && "textarea" == element.tagName.toLowerCase())) { var 默认按钮; defaultButton = document.getElementById(target); if (defaultButton && "未定义" != typeof defaultButton.click) { 默认按钮.click(); event.cancelBubble = true; if (事件.stopPropagation) event.stopPropagation(); 返回假; } } 返回真; }