- 如果提交對象為按鈕的話,可以對按鈕設置disabled,此辦法適應於按鈕提交,此種方法簡單粗暴,也是很多人用的辦法,代如下:
//在按鈕提交之后和AJAX提交之前將按鈕設置為禁用 $("input[type=submit]").attr('disabled',true) $.ajax({ url:'/post.php' data:{a:1,b,1} success:function(){ //在提交成功之后重新啟用該按鈕 $("input[type=submit]").attr('disabled',false) }, error: function(){ //即使AJAX失敗也需要將按鈕設置為可用狀態,因為有可能是網絡問題導致的失敗,所以需要將按鈕設置為可用 $("input[type=submit]").attr('disabled',false) } })
- 非按鈕對象提交
有時候我們在提交數據的時候沒有from,只有單個表單組件(input、textarea、radio、checkbox等),所以我們就可以將任何一個對象設置提交對象來完成提交,由於普通對象沒有disabled屬性,所以我們需要用其它方式來防止重復提交
//設置一個對象來控制是否進入AJAX過程 var post_flag = false; function post(){ //如果正在提交則直接返回,停止執行 if(post_flag) return; //標記當前狀態為正在提交狀態 post_flag = true; $.ajax({//進入AJAX提交過程 url:'/post.php' data:{a:1,b,1} success:function(){ post_flag =false; //在提交成功之后將標志標記為可提交狀態 }, error: function(){ post_flag =false; //AJAX失敗也需要將標志標記為可提交狀態 } }) }