使用jQuery时防止双击验证submitHandler

时间:2017-08-08 07:52:33

标签: javascript jquery

我正在使用Jquery Validate中的submitHandler来触发我的onClick事件。 我尝试使用$("#btnPay").disabled = true;来禁用该按钮。 但是,它没有用。

以下是我迄今为止尝试过的代码。

    $("#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);

        }
    });

2 个答案:

答案 0 :(得分:0)

只有在成功验证表单后才会触发

+------+---------+-----------+---------------+ | id | name | price_sum | indexs | +------+---------+-----------+---------------+ | 22 | Example | 120 | Test 1,Test 2 | +------+---------+-----------+---------------+ 1 row in set (0.02 sec) 。您应该为点击添加一个单独的事件监听器,类似于

submitHandler

请注意,您必须在成功/错误时启用按​​钮,// Prevent multiple form submission $('#btnPay').on('click', function(e) { $(this).prop( "disabled", true ); }); //the rest of your code submitHandler是完美的候选人。

答案 1 :(得分:0)

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