0

チェックアウトボタンをダブルクリックしないようにする解決策はありますか? このため、重複した注文がたくさんあります。

作業ファイルへのファイルパスは次のとおりです。/templates/rolucia/html/com_virtuemart/cart/default.php

誰かが私のコードの何が問題なのか教えてもらえますか pls ?:

<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()or.one()関数を使用することであることがわかりました。使用しbind()ました。

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

したがって、送信ボタンがクリックされると、フォームの送信後にイベントのバインドを解除する必要があります。

于 2013-05-08T11:01:45.903 に答える