Wednesday, March 26, 2014

[jQuery] 避免使用者連點送出的小技巧 (包括 一般表單 及 匯出 excel)

有時因為資料量很大,當使用者送出查詢時,會需要一段時間(所謂的網頁轉轉轉),有時使用者會懷疑網頁沒在動,所以就會連點送出,反正造成更長的查詢時間,或是網頁直接跳成 "無法顯示網頁" ,這時就需要一些小技巧...

讓使用者點擊送出後,就不能再點:

$("#query_submit").button().click(function() {
  $("#query_submit").button({ disabled: true });
  $("#myform").submit();
}
很簡單吧。

延伸應用:
當我們的表單提供將查詢結果轉成 Excel 下載功能時,會發現使用上面的小技巧會導致
button 無法點擊的問題,這時候就要透過另開視窗的技巧去處理:
$("#excel_submit").button().click(function() {
  $("#myform").attr("target", "_blank");
  $("#myform").submit();
}

兩種狀況合併時就會變成:
$("#query_submit").button().click(function() {
  $("#myform").attr("target", "_self");
  $("#query_submit").button({ disabled: true });
  $("#myform").submit();
}
$("#excel_submit").button().click(function() {
  $("#myform").attr("target", "_blank");
  $("#myform").submit();
}

這樣就不怕使用者連點攻擊了。

No comments:

Post a Comment