2017-05-30 6 views
0

私はちょうどプログラミング初心者ですので穏やかにしてください。asp.net mvc 5でjqueryプラグインを使用する方法ボタンをクリックしてください

私はVisual Studio Community 2015エディションで作業しています。 私のプロジェクトでは、標準のasp.net MVC 5ソリューションテンプレートを使用しています。 私は、作成ボタンを含むビジュアルスタジオ足場の入力フォームを持っています。

ダブルクリックするとフォームの複数の送信を停止しようとして問題が発生しています。

私は数年前にstackoverflowに投稿されたソリューションを実装しようとしていましたが、試して2日後、私はそれ以上の進歩はありません。ソリューションは、以下のjQueryプラグインを使用することを含む

(私はまだJavaのについて多くを知らない認めなければならない!)

私が使用したいのです。このjQueryプラグインコードは以下であり、このオリジナルのポストから来

Prevent double submission of forms in jQuery

jQuery.fn.preventDoubleSubmission = function() { 
    $('input[type="submit"]').data('loading-text', 'Loading...'); 

    $(this).on('submit',function(e){ 
    var $form = $(this); 

    $('input[type="submit"]', $form).button('loading'); 

    if ($form.data('submitted') === true) { 
     // Previously submitted - don't submit again 
     e.preventDefault(); 
    } else { 
     // Mark it so that the next submit can be ignored 
     $form.data('submitted', true); 
     $form.setFormTimeout(); 
    } 
    }); 

    // Keep chainability 
    return this; 
}; 

jQuery.fn.setFormTimeout = function() { 
    var $form = $(this); 
    setTimeout(function() { 
    $('input[type="submit"]', $form).button('reset'); 
    alert('Form failed to submit within 30 seconds'); 
    }, 30000); 
}; 

*/

私が午前の問題は、私のprojでjQueryプラグインを展開する方法であります誰かが作成ボタンをクリックしたときにどのように呼び出すかを指定します。

私は、ページビューに直接プラグインを入れてみましたが、スクリプトフォルダ内のjavascriptファイルとしても入れてみましたが、二重送信を防ぐ機能はまだありません。

私はボタンのonclickプロパティを使って関数を呼び出そうとしていますが、実行することはできません。誰もが以前のソリューションのメモリとASP.NET MVC 5 cshtmlビューのボタンをクリックして実装する方法はありますか? (私はプラグインのコードを入れないと、どのように私が作成したボタンから呼び出すん)

感謝

答えて

0

使用を

はjqueryの側でこのコードは、ダブルクリックを防ぐことである

$(document).on('submit', 'form', function() { 
     var button = $(this).find('input[type="submit"]'); 
     setTimeout(function() { 
      button.attr('disabled', 'disabled'); 
     }, 0); 
    }); 

あなたの書式と有効期限が間違っている場合は、

の後に
//disabled Multiple Click Event on form 
    $(document).on('invalid-form.validate', 'form', function() { 
     var button = $(this).find('input[type="submit"]'); 
     setTimeout(function() { 
      button.removeAttr('disabled'); 
     }, 1); 
    }); 
関連する問題