在网速过慢的时候,点击提交按钮没有反应,用户连续点击两次按钮的时候,会重复提交两次或者N次,请问有什么办法能在用户提交一次以后,按钮禁用掉,数据还提交了呢?,
语言环境是asp.net的问题补充:首先,在后台的点击事件里面,在事件里面写 enable=false是不管用的,因为网速过慢,提交还没有被响应,
其次,在页面里写JS脚本,在onclick事件里面写点击后禁用 按钮也不行的,那样只禁用了按钮,但是数据没有提交,有能解答的吗
常用的方法:
一般我页面上的按钮都是图片按钮.所以通常情况下.我会在"提交"的图片按钮旁边扔一张普通的<img>.上面是"正在提交"的字样.
同时是灰色不可用的样式.默认为<img style="display:none">
.然后为<form>添加onsumit事件.在该事件中隐藏"提交"按钮.显示那张普通的图片.
<form id="form1" runat="server" onsubmit="document.getElementById('btnSave').style.display='none';document.getElementById('btnSaving').style.display='inline';">
........
<img id="btnSaving" src="images/saving.gif" style="display:none;" onclick="alert('数据正在提交,长时间无反应请刷新页面!');" /><asp:imagebutton id="btnSave" Runat="server" ImageUrl="images/save.gif" OnClick="btnSave_Click"></asp:imagebutton> <a href="#" onclick="javascript:window.opener=null;window.open('_slef','');window.close();return false;"><img src="images/close.gif" /></a>
</form>
效果是.网速慢的时候.点击了"提交"按钮后."提交"按钮变为"正在提交"按钮.(实际是一个隐藏.一个显示).由于是在客户端修改的服务器端按钮.所以在回发页面后不用再次去改变这两个按钮的DISPLAY.会自动还原为初始状态.
如果你的按钮不是图片.而是普通的<asp:button id="btnSave">也可以按这种方式做.
在你的"提交"按钮旁边扔一个<input type="button" value="正在提交" id="btnSaving" />同样可以达到效果.
www.aitaowang8.com