网上查了很多方法都不太好使不如自己写一个思路就是把按钮按下时用Javascript在客户端把按钮下一次的onclick事件改为return false; 这样在服务器端页面重新送回客户端之前再次点击按钮都不会Post到服务端同时将按钮的style改为一行字的样子光标也变成沙漏状当服务端页面重新产生后Button又会回到初始状态该方法对于F刷新还不能防范只是简单封闭了F的按键为了防止刷新时再次提交可以在页面返回前将一些TextBox控件清空这样就可以判断如果该TextBox为空则不再进行后续操作(如写库) 或是后台操作成功后跳转到另一个页面以防止恶意刷新主要是考虑在企业内网使用不是为了防黑客所以不是非常严格
<html xmlns=http://wwwworg//xhtml>
<head runat=server>
<title>禁止多次提交网页测试</title>
<style type=text/css>
disable
{
borderstyle:none;
borderwidth: thin;
backgroundcolor:Transparent;
color: #CCCCCC;
cursor:wait;
}
</style>
<script type=text/javascript language=javascript>
function DisableButton()
{
documentgetElementById(Button)className = disable;
documentgetElementById(Button)value = 正在提交;
documentgetElementById(Button)onclick=Function(return false;);
return true;
}
documentonkeydown=mykeydown;
function mykeydown()
{
if(eventkeyCode==) //屏蔽F刷新键
{
windoweventkeyCode=;
return false;
}
}
</script>
</head>
<body>
<form id=form runat=server>
<div>
输入一些内容<asp:TextBox ID=TextBox runat=server></asp:TextBox>
<br />
<asp:ListBox ID=ListBox runat=server Height=px Width=px>
</asp:ListBox><br />
<asp:Button ID=Button runat=server Text=OK Width=px
onclick=Button_Click />
</div>
</form>
</body>
</html>