一个上传图片的页面,先选择要上传的图片,然后点击‘上传’按键即可将图片上传至服务器上,现在已经可以正常上传! 但是我现在在客户端Javascript脚本里写了一段代码,就是说点击‘上传’后执行这一段脚本,功能就是设置‘上传’按钮的disabled属性为true,因为上传文件一般都是有一个等待过程的,并不会一点马上就上传成功!这样设置的话用户一点上传这个按钮就会变得不可用,就不用再次点击了!可以防止用户连着点击而给服务器造成压力! 但现在的问题就是我设置了按钮的disabled属性为true后,这个按钮的Click事件好像就不执行了,也就是说上传不了图片了,只是见面回回传了一下,但并没有执行任何操作,我去掉这段Javascript脚本后就又正常了,这是为何?我以后在ASP里经常这样用的,没有发生过这种情况啊?

解决方案 »

  1.   

    disable事件应该先Click事件,在Click中对其Disable
      

  2.   

    你用session 或cookie或是数据库记录一下上传时间,对比一下
      

  3.   

    先Click事件,然后在Click的事件过程中设置Disable事件肯定是不行的,在服务器端处理是达不到我要的效果的,如果是在服务器端处理就必须要等页面回传后才会有变化,也就是说上传的过程中按钮不会有变化,一但上传完毕,页面回传了按钮将变得不可用,这就没任何意义了!我目的只是让图片正在上传的过程中‘上传’按钮不可用!避免用户重复点击而给服务器造成压力!以前在ASP里面经常这样做的,都没问题的,怎么在ASP.NET里就不行了!
      

  4.   

    我刚刚试了一下,确实是这样
    试试下面的代码: Response.Write("<script>var flag=0;</script>");
    Button1.Attributes.Add("onclick", "if (flag==0){flag=1;return true;}else{alert('请勿重复提交');return false;}");
      

  5.   

    Disable 了当然什么也没有了,,,要在之前做事
      

  6.   

    已经按iuhxq(小灰)的方法初步解决了问题,但还是期待更好的解决方法!
      

  7.   

    <script type="text/javascript">
    function V6_doPost()
    {
    form1.Button_Post.style.display = "none";
    form1.Submit2.style.display = "";
    }
    </script>
    ...
    <input name="Submit2" type="button" id="Submit2" style="display: none;" disabled="disabled" value="正在提交..." />
    <asp:Button ID="Button_Post" Text="提交发表" OnClick="Button_Post_Click" runat="server" />
    ...