ページへ戻る

− Links

 印刷 

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

UsersWiki:nao-pon/blog/2015-04-01のソース

  
#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)