ページへ戻る

− Links

 印刷 

[jQuery] フォームの二重送信を防止する(小ワザつき) の変更点 :: XOOPS マニア

UsersWiki:nao-pon/blog/2015-04-01 の変更点

  
現: 2015-04-01 (水) 22:09:35 nao-pon[3] ソース[4]
Line 1: Line 1:
 +#navi
 +RIGHT:&rsslink(../);
 +#boxdate
 +* [jQuery] フォームの二重送信を防止する(小ワザつき) [#k7b786a8]
 +RIGHT:&tag(プログラミング,JavaScript);
 +
 +XOOPS の d3forum で二重送信してしまう場合が結構あったので、jQuery でちょっと対応してみた。
 +
 +フォーム送信時に submit ボタンが disabled だと、そのボタンのデータが送信されず、例えば d3forum だと「プレビュー」を押してるのに「送信」扱いになってしまうので、setTimeout で、disable 属性の付与をちょっとだけ遅延させてあります。
 +
 +また、別窓で開くフォーム用に target 属性を持つフォームは除外し、念のため 15 秒後に再活性化するようにしてあります。
 +
 +これを、HypCommon の設定の「その他の設定」-「<head>内の最後に挿入するタグ」に記述しておくと XOOPS サイト全体にこの機能が追加されます。
 +
 +:追記|
 +[[[jQuery] Web ページのフォーム投稿時問題のあれこれを上手いことするやつ>../2015-04-03]] でもっといい感じのものを作ってみました。
 +
 +
 +#code(javascript){{
 +<script type="text/javascript">
 +jQuery(function($){
 +  $('form:not([target])').on('submit',function(e){
 +   var btn = $(this).find('input[type="submit"]');
 +   setTimeout(function(){btn.attr('disabled', 'disabled')},100);
 +   setTimeout(function(){btn.removeAttr('disabled');},15000);
 +  });
 +});
 +</script>
 +}}
 +
 +RIGHT:&font(90%){&page_comments;};
 +#navi
  

  • nao-pon/blog/2015-04-01 のバックアップ差分(No. All)