2016-05-31 4 views
0

お客様が支払いを請求しようとしたときに開く簡単な確認ダイアログボックスがあります。彼らが「キャンセル」をクリックすると、情報を再入力するためにASPページに戻りますが、「支払いを送信」をクリックすると、支払いを処理するコードのメソッドを呼び出す隠しボタンが起動します。私が抱えている問題は、ダイアログボックスが閉じる前に、いくつかの顧客が「支払いの送金」ボタンを2回クリックすることができることです。ボタンが2回クリックされないように私の側でできることはありますか?JQueryダイアログボックスダブル転記

<script type="text/javascript"> 
function ShowPaymentConfirmation() { 
    $(function() { 
     $("#dialog-ReviewPmt").dialog({ 
      resizable: false, 
      draggable: false, 
      dialogClass: "noclose", 
      closeOnEscape: false, 
      modal: true, 
      width: '650px', 
      "title": "Review Payment", 
      buttons: { 
       "Submit Payment": { "class": "SubmitPaymentDialogButton", click: function() { 
        this.disabled = true; 
        $(this).dialog("close"); 
        $("#<%=PaymentSubmit.ClientID%>").click(); 
       } 
       }, 
       "Cancel": { "class": "CancelRedDialogButton", click: function() { 
        $(this).dialog("close"); 
       } 
       } 
      } 
     }); 
    }); 
    return false; 
}; 

+0

最初のクリックでそれを無効にできないのはなぜですか? – Bradley

+0

隠しボタンを無効にする、またはダイアログボタンを無効にすることはできますか?私にとって紛らわしいことは、このボタンが最初にやるべきことはダイアログボックスを閉じることなので、他のクライアントサイドのコントロールがどれほど効果的かと思っています。あなたの提案を追加の予防策として追加しようとしますが、悲しいことに私は問題を再現することができないため、潜在的な修正をテストするのが難しくなります。 – CDurand

答えて

0

申し訳ありませんが、私はコメントを追加することはできませんが、私は問題を再現することはできません。どのくらい速くボタンをダブルクリックしても、クリックコールバックは2回発生しません。

ShowPaymentConfirmation()関数が2回呼び出される可能性はありますか?

+0

ShowPaymentConfirmation()関数は、その関数を呼び出すボタンが1つしかないので、2回呼び出されているとは思いません。この問題を再現することは、私の最大の問題ですが、私はこれを防ぐバックエンドソリューションを考え出しました。コードの背後にあるメソッドは、支払いを処理するために 'ReviewPayment'というセッション変数から情報を受け取ります。 「SubmitPayment」をクリックして「ConfirmPayment」という値に設定すると、「ReviewPayment」をクリアするステップを追加するつもりです。この方法では、2回目のクリックでは値が存在しません。 – CDurand