2017-08-08 15 views
0

JQuery ValidateからsubmitHandlerを使用してonClickイベントをトリガーしています。 $("#btnPay").disabled = true;を使用してボタンを無効にしようとしました。 しかし、動作していませんでした。jQueryを使用しているときにダブルクリックを防止するsubmitHandlerを検証する

以下は私が今まで試したコードです。

$("#myForm").validate({ 
     rules: { 
      cardholdername: { 
       required: true, 
      }, 
      cardholderemail: { 
       required: true, 
      }, 
     }, 
     messages: { 
      cardholdername: { 
       required: "Please enter your name", 
      }, 
      cardholderemail: { 
       required: "Please enter your email", 
      }, 
     }, 
     onkeyup: false, //turn off auto validate whilst typing 
     submitHandler: function (form) { 

      $("#btnPay").disabled = true; 

      event.preventDefault(); 

      var form = document.querySelector('form'); 
      var extraDetails = { 
       name: $('#cardholder-name').val(), 
       email: $('#cardholder-email').val(), 
      }; 
      stripe.createToken(card, extraDetails).then(setOutcome); 

     } 
    }); 
+0

[Jquery Validate Plugin Prevention Double Validation On Validation]の複製があります(https://stackoverflow.com/questions/5996950/jquery-validate-plugin-prevent-double-submit-on-validation) –

+0

'$(" #btnPay ")。prop( 'disabled'、true);' –

答えて

0

submitHandlerフォームが正常に検証された後でのみ発生します。 submitHandlerinvalidHandlerは、そのための完璧な候補である - あなたが成功/エラー時に戻るボタンを有効に処理する必要があります覚えておいてください

// Prevent multiple form submission 
$('#btnPay').on('click', function(e) { 
    $(this).prop("disabled", true); 
}); 

//the rest of your code 

の線に沿って、クリックのために何かを別のイベントリスナーを追加する必要があります。

0

$( "#btnLogin")。attr( 'disabled'、 'disabled');私の問題を解決しました。

関連する問題