通過JS在用戶端限止使用者重複提交的代碼

來源:互聯網
上載者:User
程式介紹
1.方法一:hiddenForm 隱藏表單法: 查看函數 hiddenForm
2.方法二:disButtons 禁用按鈕法: 查看函數 disButtons disButtons2
3.本程式為用戶端javascript程式限制多次提交,冰河原創首發藍色理想,歡迎大家轉載,但請保留本人資訊,謝謝
4.源碼發布在My Phone主題站: http://www.qumiao.com/javascript/disRepSubmit.rar (本人所有原創程式均打包發在此)
5.作者郵箱及QQ: binghe6218@163.com 369768917 (加好友時請提醒:程式交流)

函數源碼:
以下是引用片段 by alixixi.com:
function checkform(frm)
{
       //下面這一行是普通的驗證判斷
       if(frm.keyword.value==""){alert(’“手機主題名稱”不可為空’); frm.keyword.focus();return false}
       
       //重點在這, 在驗證完之後執行如下函數可以防止表單資料重複提交
       //disButtons();       //函數調用1
             //disButtons2();       //或函數調用2
       hiddenForm(frm);              //或函數調用3

}


/*
函數名稱:hiddenForm
函數功能:提交時讓表單自動隱藏,而不影響資料的提交
*/
以下是引用片段 by alixixi.com:
function hiddenForm(frm)
{
       //waitStr 提交過程中出現的提示,可以自行設定
       var waitStr = "<center> Waiting...</center>";
       frm.innerHTML = "<div style=’display:none;’>"+frm.innerHTML+"</div>"+waitStr;
}


/*
函數名稱:disButtons
函數功能:提交前,將所有表單中的button,reset,submit禁用disabled;
          如果是submit按鈕,則添加與之相同隱藏文字框hidden對象,讓提交的資訊無一漏網
作者:    冰河
*/
以下是引用片段 by alixixi.com:
function disButtons()
{
       for(k=0;k<document.all.length;k++ )
       {
              var obj = document.all(k)
              if( obj.type==’button’ || obj.type==’submit’ || obj.type==’reset’)
              {
                     obj.disabled = true
                     if (obj.type==’submit’)
                     {
                            var oNewNode = document.createElement("input");
                            oNewNode.type = "hidden"
                            oNewNode.name = obj.name
                            oNewNode.value = obj.value
                            //frm.insertAdjacentElement("beforeEnd",oNewNode);
                            obj.insertAdjacentElement("afterEnd",oNewNode);
                     }              
              }
       }
}

/*
函數名稱:disButtons2
函數功能:提交前,將所有表單中的button,reset,submit禁用disabled;
          如果是submit按鈕,則添加與之相同隱藏文字框hidden對象,讓提交的資訊無一漏網
作者:    冰河
函數說明:與上面的函數功能一樣,但適用瀏覽器範圍更廣,推薦使用此函數。
*/
以下是引用片段:
function disButtons2()
{
       for(k=0;k<document.forms.length;k++ )
       {
              var frm = document.forms[k]
              for(i=0;i<frm.length;i++)
              {
                     var obj = frm.elements[i]
                     if ( obj.type==’button’ || obj.type==’submit’ || obj.type==’reset’ ) 
                     {
                            obj.disabled = true
                            if (obj.type==’submit’)
                            {
                                   var oNewNode = document.createElement("input");
                                   oNewNode.type = "hidden"
                                   oNewNode.name = obj.name
                                   oNewNode.value = obj.value
                                   //frm.insertAdjacentElement("beforeEnd",oNewNode);
                                   obj.insertAdjacentElement("afterEnd",oNewNode);
                            }
                     }
              }
       }
}


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。