防止ASP.NET按钮多次提交的办法
2009-05-12 22:37:09来源:未知 阅读 ()
网上查了很多方法,都不太好使,不如自己写一个,思路就是把按钮按下时用Javascript在客户端把按钮下一次的onclick事件改为return false; 这样在服务器端页面重新送回客户端之前,再次点击按钮都不会Post到服务端。同时将按钮的style改为一行字的样子,光标也变成沙漏状。当服务端页面重新产生后Button又会回到初始状态。该方法对于F5刷新还不能防范,只是简单封闭了F5的按键,为了防止刷新时再次提交可以在页面返回前将一些TextBox控件清空,这样就可以判断如果该TextBox为空则不再进行后续操作(如写库)。 或是后台操作成功后跳转到另一个页面以防止恶意刷新。主要是考虑在企业内网使用,不是为了防黑客,所以不是非常严格。
以下为引用的内容:《br/> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>禁止多次提交网页测试</title> <style type="text/css"> .disable { border-style:none; border-width: thin; background-color:Transparent; color: #CCCCCC; cursor:wait; } </style> <script type="text/javascript" language="javascript"> function DisableButton() { document.getElementById("Button2").className = "disable"; document.getElementById("Button2").value = '正在提交.'; document.getElementById("Button2").onclick=Function("return false;"); return true; } document.onkeydown=mykeydown; function mykeydown() { if(event.keyCode==116) //屏蔽F5刷新键 { window.event.keyCode=0; return false; } } </script> </head> <body> <form id="form1" runat="server"> <div> 输入一些内容<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:ListBox ID="ListBox1" runat="server" Height="77px" Width="332px"> </asp:ListBox><br /> <asp:Button ID="Button2" runat="server" Text="OK" Width="77px" onclick="Button2_Click" /> </div> </form> </body> </html> 标签: 版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 上一篇:详细解读.NET中的代码动态编译
相关文章
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设 网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源 网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash 热门词条
最新资讯
热门关注
热门标签
|