是否有任何解决方案可以防止双击结帐按钮,因此它不会同时结帐两次?因此,我有很多重复的订单。
工作文件的文件路径为:/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>
有什么建议吗?
答案 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);
});
});
因此,点击提交按钮后,在提交表单后,它应该取消绑定事件。