一、javascript:
<script>
var i=0;
function formCheck(){i++;if (i>1) {document.form.submit1.disabled = true;}return true;}
function presskey(eventobject){if(event.ctrlKey && window.event.keyCode==13){i++;if (i>1) {alert('帖子正在发出,请耐心等待!');return false;}this.document.form.submit();document.form.submit1.disabled = true;}}
</script>
支持CTRL+ENTER提交。只能提交一次。
<form name="form" method="post" action='' onsubmit="return formCheck()">
<TEXTAREA name=content rows=6 cols=79 onkeydown=presskey()></TEXTAREA> <BR><INPUT tabIndex=4 type=submit value="Ctrl+Enter 回复主题"  name=submit1 onclick="return formCheck()">   <INPUT type=reset value=" 重 写 主 题 " name=reset onclick="checkclick('该项操作要清除全部的内容,您确定要清除吗?')"></form>
 二、加中间页面
在document.form1.submit();后加
document.body.innerHtml = "<center> Waiting...</center>";

三、根据Session或者时间什么的条件来判断

四、执行成功后生成客户端事件
如果一个事件(比如新商品提交、注册等),已经成功执行,那么就继续执行一句代码,作用是生成一个javaScript。

            this.btn_Agree.OnClientClick = "javascript:alert('。。。不能重复提交。。。。。);return false;"; 


利用下面代码来防止外部提交
Request.ServerVariables("HTTP_REFERER")
Request.ServerVariables("SERVER_NAME")

五、写一个继承的button出来
protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
  {
   
   this.Attributes.Add("onclick","javascript:this.value='正在提交...';setTimeout(function Test(){this.disabled=true;},200)");
   base.AddAttributesToRender (writer);
  }

如果要防止刷新不提交,重新定位一下页面