<asp:Button>控件在用 Attributes.Add("onclick", "return false;") 注册javascript事件时出现无效, 即无论return什么都会被递交到服务器, 这是一个罕见的bug. 在网上搜索很长一段时间后发现有人说是flashget 1.8导致的. 我并没有对此进行验证. 在firefox浏览器中没有这个问题.
在摸索一段时间后找到一个比较dirty的替代方法如下:
把<asp:Button>控件换成<input type="button" runat="server" onserverclick="serverHandler" />
Attributes.Add("onclick", "return Function();") 换成
Attributes.Add("onclick", "if (!Function()) return;")
这样就能阻止提交了.
原理可以自己去看生成的客户端页面.
在摸索一段时间后找到一个比较dirty的替代方法如下:
把<asp:Button>控件换成<input type="button" runat="server" onserverclick="serverHandler" />
Attributes.Add("onclick", "return Function();") 换成
Attributes.Add("onclick", "if (!Function()) return;")
这样就能阻止提交了.
原理可以自己去看生成的客户端页面.
本文介绍了一个关于 ASP Button 控件的罕见 bug,在某些情况下无法通过 javascript 的 return false 阻止默认行为。文中提供了一个替代方案,使用 input 按钮结合服务器点击事件和自定义的 JavaScript 函数来解决问题。
488





