PrestaShop: скрыть/показать способ оплаты, если существует НДС

Я хочу скрыть способ оплаты и показать его, только если клиент ввел номер плательщика НДС. У меня есть этот код:

<input type="text" id="vat_number"/>
<a class="universalpay" title="Invoice">INVOICE PAYMENT</a>

JS

$(document).ready(function(){
    $("a[title='Invoice']").hide();

    $('#vat_number').keyup(function(){
        if($(this).val().length !=0){
            $("a[title='Invoice']").show();
        }
        else
        {
           $("a[title='Invoice']").hide();      
        }
    })
});

Но проблема в том, что когда кто-то нажимает «Принять условия», он перезагружает способы оплаты, а затем снова показывает.

Как я могу заставить его скрывать, пока НДС не будет заполнен?


person Stefan    schedule 05.09.2016    source источник


Ответы (1)


Вы можете использовать метод ajaxComplete:

$(document).ajaxComplete(function(){
    // Check if we are in order page
    if($('body').attr('id') == 'order'){
         if($('#vat_number').val().length != 0){
             $("a[title='Invoice']").show();
         } else {
             $("a[title='Invoice']").hide();
         }

    }
});
person marsaldev    schedule 05.09.2016
comment
Ваш код работает идеально! Просто добавьте $(a[title='Invoice']).hide(); перед if, чтобы он скрывался с самого начала. - person Stefan; 05.09.2016
comment
Этот фрагмент является дополнением к вашему $(document).ready(), там вы прячетесь от начала :) - person marsaldev; 05.09.2016