前端防止按鈕被多次點擊,防止按鈕多次點擊
前端的部分邏輯有時候控制前端的顯示,比如記錄收藏數目等等。有時候多次重複點擊會造成最上層顯示的bug。所以需要有部分邏輯判斷去篩除掉重複多次的點擊。
實現部分代碼如下,主要是通過setTimeout去加以判斷,即無論點擊幾次,間隔一定時間才會去觸發一次事件,從而只產生一次的記錄:
<script> var i=0; //判斷點擊次數寄存 var closetimer = null; //延時函數寄存function Button1_Click() //botton點擊事件 { console.log('1'); i++; //記錄點擊次數 closetimer = window.setTimeout(setout,200); }function setout(){ //點擊執行事件if(i>1) //如果點擊次數超過1 { console.log('wrong'); window.clearTimeout(closetimer); //清除延時函數 closetimer = null; //設定延時寄存為null //添加作業碼 i=0; //重設點擊次數為0 }else{ //如果點擊次數為1 console.log('right'); i=0; //重設點擊次數為0 //添加執行操作的代碼}}</script>
C#中防止點擊同一按鈕多次,彈出多個同一表單辦法?
思路:定義全域的Form2對象,開啟時判斷,如果子表單是開啟的,就把它啟用,否則重新建立該表單並顯示,
定義全域的Form2表單對象:
private Form2 f2 = null;
開啟f2的代碼:
if(f2 != null && f2.Created)
{
f2.Focus();
return;
}
f2 = new Form2();
f2.MdiParent=this;
f2.Show();
點擊提交按鈕後,讓button變為不可用防止多次提交
<asp:button ID="Button2" runat="server" text="Send" onclick="Button2_Click"
Enabled="False" OnClientClick="javascript:{_doPostBack('Button2','');this.disabled=true; }" />