今天在某网页上投票,投票提交成功后,我按F5刷新,ie弹出“重试  取消”提示框,点“重试”,就重复又提交成功了一次,
所以,想想,如果做有一个功能,自动刷新,不就可以一直 重复 投票吗,但是如何能 捕捉  “重试  取消”提示框中的
“重试”呢??小弟在此请救??/谢谢!

解决方案 »

  1.   

    如果是投票系统,应该要有防止重复投票的机制.如果只允许注册用户投票,可以在投票前检查是否有该用户投该票的记录,有的话予以提示等.如果允许匿名投票,那么可以通过cookie/session/ip/投票间隔等限制其重复投票.你投2次成功,是那个系统作的不到位.按 刷新 就是把上次提交的表单内容再提交一次.发帖等功能不一定有检查重复功能,因为这毕竟是对比文字,数据量大的话,较耗费资源,且如果真想重复发帖,加个空格之类的也难以分辨.(无法用高效简单的方法分辨)而投票系统的投票往往只是一个int值,容易分辨.
      

  2.   

    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript">
            function checkKeyPress()
            {
                if(event.keyCode == 116)
                {
                    event.keyCode = 0;
                    event.returnValue = false;
                }
            }
        </script>
    </head>
    <body onkeydown="checkKeyPress()">
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Text="Button" />
        </div>
        </form>
    </body>
      

  3.   

    用UpdatePanel,F5刷新页面,不会重复提交
      

  4.   

    不要POST数据
    用GET数据,就没了提示框
      

  5.   

    这个不是挺简单的,只要在代码里面加ibtn.enable=false;就可以了