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();
返回假;
}
}
返回真;
}
| 归档时间: |
|
| 查看次数: |
7979 次 |
| 最近记录: |