Форма кода купона и показать div onSuccess /OnFailure


На моей странице оформления заказа у меня есть форма кода скидки со следующим прототипом сценария для перезагрузки формы с помощью ajax и добавления значения кода.

Это работает нормально, но я также хотел бы показать скрытый div как для onSuccess, так и для OnFailure.

Мне было интересно, может ли кто-нибудь помочь мне здесь?

Итак, вот текущий сценарий:

<script type="text/javascript">
//<![CDATA[
function updateCoupon(reqid) {
    var reqid;
    if(reqid == 2) {
        $('coupon_code').setValue('');
    }
    $('discount-coupon-form').request({
        method: 'post',
        onComplete: payment.onComplete,
        onSuccess: payment.onSave,
        onFailure: checkout.ajaxFailure.bind(checkout),
    })
}
//]]>
</script>

И форма, в которой отображаются дивы "скидка-купон-успех" и "скидка-купон-неудача", которые должны быть раскрыты соответственно:

<form id="discount-coupon-form" action="<?php echo $this->getUrl('checkout/onepage/coupon') ?>" method="post">
    <div class="discount">
        <h2 style="font-weight: normal;">Discount Codes</h2>
        <div class="discount-coupon-success" style="display:none;">W00t!</div>
        <div class="discount-coupon-error" style="display:none;">Error</div>
        <div class="discount-form">
            <label for="coupon_code"> <?php echo $this->__('Enter coupon code (if you have one)') ?></label>
            <div class="input-box">
                <input class="input-text" id="coupon_code" name="coupon_code" value="<?php echo $getCouponCode; ?>"/>
            </div>
        <?php  if(strlen($getCouponCode)) { ?>
            <button type="button" class="cancelBtn" onclick="updateCoupon(2);" value="<?php echo $this->__('Cancel Coupon')?>"><span><?php echo $this->__('Cancel Coupon') ?></span></button>
        <?php } ?>
            <button type="button" class="button grey" onclick="updateCoupon(1);" value="<?php echo $this->__('Apply')?>"><span><?php echo $this->__('Apply') ?></span></button>
        </div>
    </div>
</form>
Author: doubleplusgood, 2015-07-03

1 answers

Чтобы скрыть элемент с задержкой

Element.hide.delay(3, 'element-id');

Здесь первый параметр - интервал времени (т.Е. сейчас 3 секунды), а второй - идентификатор элемента.

Чтобы скрыть свой divs после успеха AJAX

$('discount-coupon-form').request({
        method: 'post',
        onComplete: payment.onComplete,
        onSuccess: function(){
            Element.hide.delay(3, 'your-success-msg-id');
            Element.hide.delay(3, 'your-error-msg-id');
            payment.onSave;
        },
    onFailure: checkout.ajaxFailure.bind(checkout),
})

Чтобы скрыть по имени класса

var hideDiv = $$('.your-class');
hideDiv.each(function(e){
    Element.hide.delay(3, e);
});
 2
Author: MeenakshiSundaram R, 2015-07-03 11:40:32