サイドコンテンツ 【メイン】

推し:加藤安那

加藤安那 (ユメオイ少女)

Twitter: @_hana_celeb_

最新 15 件のエントリー

サイドコンテンツ 【サブ】

ブログ エントリー

  • フォーム送信時に送信ボタンを無効化してもボタンの値を得る方法

    -
    $('form').on('submit', function(){
    // 無効化する前に、ボタンの name と value を input hidden にコピー
    $(this).find('input[type=submit][name!=""]').each(function(i, elem){
    var submit_name = elem.attr('name');
    var submit_value = elem.val();
    // 既に hidden で submit_name があれば削除
    $('submit[type=hidden][name=' + submit_name + ']').remove();
    // 追加
    $(this).append('<input type="hidden" name="' + value + '" value="' + submit_value + '" />');
    });
    
    // ボタンを無効化
    //$(this).find('input[type=submit]').prop('disabled', true);
    // 表示されているボタン連打を防ぐため、該当フォームでは無く全てのフォームのボタンを無効化
    $('input[type=submit]').prop('disabled', true);
    
    });
    
    

    ボタンに name と値を設定して “戻るボタン” と “次へボタン” を配置したとき、prop('disabled', true) すると値が読めなくなるためスクリプトにはボタンに設定された name と value は渡らない。

    それを防ぐためにボタンに name が設定されてるときには <input type="hidden"> にコピーする。

    ボタンを押した後に別のフォームのボタンを押されることを防ぐために、ここではページに表示されている submit ボタン全てを無効化している。