2017-08-08 66 views
0

我使用Jquery Validate的submitHandler来触发我的onClick事件。 我试着用$("#btnPay").disabled = true;来禁用按钮。 但是,它不起作用。使用jQuery时防止双击validate 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验证插件预防双重提交验证](https://stackoverflow.com/questions/5996950/jquery-validate-plugin-prevent-double-submit-on-validation) –

+0

'$(“ #btnPay“)。prop('disabled',true);' –

回答

0

submitHandler大火后,才表单已成功验证。您应该添加一个单独的事件侦听器点击,沿东西的

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

//the rest of your code 

行请记住,你必须处理使按键回成功/错误 - submitHandlerinvalidHandler是完美的候选人。

0

$(“#btnLogin”)。attr('disabled','disabled');解决了我的问题。