在VirtueMart2结帐按钮上禁用双击事件

时间:2013-05-08 10:18:44

标签: jquery twitter-bootstrap joomla2.5 virtuemart

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

工作文件的文件路径为:/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>

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

首次点击后,尝试使用prop()

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

        $(this).prop('disabled', true);
    });
});

答案 1 :(得分:0)

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

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

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