2016-06-27 23 views
0

AJAXリクエストの開始時に(ボタンを押すとすぐに)「作成」ボタンを無効にして、サーバが応答すると可能な二重提出を防ぐために?新しいエントリを作成している間AJAXの起動時にボタンを無効にし、jQueryのデータテーブルで完了時に有効にする

enter image description here

ボタンが表示されます。既存のエントリ/行を更新し、削除中

<button class="btn" tabindex="0">Create</button> 

同じボタンが表示されます。それらのボタンでも同じことが起こるはずです。

答えて

0

さてあなたはこのためにあなたのボタンに属性を保つことができます。例えば

<button class="btn" tabindex="0" data-clicked="false">Create</button> 

はtrueに、ボタンのデータ値を変更するにはajaxStart上のjQueryを使用してください。次に、クリックイベントで、残りのコードを実行する前にそのデータ値を処理します。

$(document).on('click', 'button', function (e) { 
    if($(this).data('clicked') == true){ 
     return false. 
    } 
}); 

更新::

エディタのDataTableのイベントページには、エディタのためのコールバックのすべてを提供します。 initCompleteイベントを使用して、data属性をbuttonに設定できます。次に、クリックイベントのcallbackを更新し、そこで処理します。必要なイベントについては、イベントページを参照してください。

AJAX要求の開始時に(とすぐにボタンを押している)

これは私を作る:あなたはボタンを無効にすることにしたいと言う

Editor events

+0

ボタンは、プラグインによって動的に生成されます。したがって、ボタンに属性を追加するボタンを制御することはできません。 – Tiny

+0

'ajax-call'を制御できますか? – Rayon

+0

はい、あなたはajaxを制御できますが、デフォルトを上書きして独自に書き込む必要があります。 https://editor.datatables.net/examples/advanced/localstorageを参照してください。html –

0

そのフォームを開くボタンではなく、あなたのポストに描かれたフォームのcreateボタンを意味すると考えてください。しかし、DataTablesは、作成ボタンを押すと自動的にそのフォームを閉じる必要があります。なぜなら、明らかにウェブページを壊していないような何らかのエラーが発生しているという理由だけです。あなたのブラウザのコンソールを見て、JSやDataTablesのエラーがないことを確認します。

また、私は個人的に経験したDataTablesエラーの一般的な原因であるため、Fiddlerのようなものを使用して、サーバーとの間で送受信されるJSONの形式を期待しています。 )。

リンクしたサンプルページでは、createボタンを押すとすぐにフォームが消え、ユーザーがデータを2回送信するのを止めることに注意してください。

関連する問題