0

有什么解决方案可以防止双击结帐按钮,所以它不会同时结帐两次?因此,我有很多重复的订单。

工作文件的文件路径是:/templates/rolucia/html/com_virtuemart/cart/default.php

有人可以告诉我我的代码有什么问题吗?:

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('#btnCheckoutSubmit').click(function(e){
            e.preventDefault();
            javascript:document.checkoutForm.submit();
            $(this).button('loading');
        });
    });
</script>
<a id="btnCheckoutSubmit" class="btn btn-large btn-block btn-warning" data-loading-text="..." href="javascript:document.checkoutForm.submit();">
    <i class="icon-chevron-right"></i>
    <?php if($this->checkout_task === 'confirm'):?>
        <?php echo JText::_('COM_VIRTUEMART_CHECKOUT_CONFIRM');?>
    <?php else:?>
        <?php echo JText::_('COM_VIRTUEMART_CHECKOUT_TITLE');?>
    <?php endif;?>
</a>

有什么建议么 ?

4

2 回答 2

1

尝试使用prop()首次单击后禁用您的按钮:

jQuery(document).ready(function($) {
    $('#btnCheckoutSubmit').click(function(e){
        e.preventDefault();
        javascript:document.checkoutForm.submit();
        $(this).button('loading');

        $(this).prop('disabled', true);
    });
});
于 2013-05-08T10:24:48.683 回答
0

因此,经过多次测试,我发现只有一种有效的方法是实际使用.bind().one()函数。我用过bind()

jQuery(document).ready(function($) {
    $('a#btnCheckoutSubmit').bind('click', function(e){
        $('#checkoutForm').submit();
        $(this).unbind(e);
    });
});

因此,一旦单击提交按钮,在表单提交后它应该取消绑定事件。

于 2013-05-08T11:01:45.903 回答