Проблема со сценарием, вызванным неправильным флажком - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь включить / отключить кнопку размещения заказа в зависимости от того, был ли установлен флажок принятия условий. Сценарий, над которым я работал, прекрасно работает для этого, но он также срабатывает, когда установлен другой флажок (с другим идентификатором). Хотя другой флажок включает кнопку, он не отключает ее снова при снятии флажка. Поэтому я думаю, что что-то не так с частью «при изменении».

Я перепробовал все, что смог найти, и не могу заставить его работать, только когда установлен флажок с идентификатором «термины»:

<script>
jQuery(window).on('load',function(){
        setTimeout(function(){
        jQuery('#payment #place_order').attr("disabled","disabled");
        },1000);            
    });
     jQuery(document).on('change','#terms',function() {
     var ischecked = document.getElementById("terms");
        if(ischecked.checked == false){
          jQuery('#payment #place_order').attr("disabled","disabled");
        }else{
            jQuery('#payment #place_order').removeAttr("disabled");
        }
    }); 
</script>

Флажок терминов приведен ниже:

<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox ios-switch" name="terms" id="terms">

А другой, вызывающий его, показан ниже:

<input class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" id="createaccount" type="checkbox" name="createaccount" value="1">

1 Ответ

1 голос
/ 29 апреля 2020

Ваш код не понятен.

При условии, что у заказа места есть идентификатор #place_order, добавление контейнера

не требуется.

jQuery(function() { // on page load
  jQuery('#place_order').attr("disabled", "disabled");

  jQuery(document).on("change", "#terms", function() { // assuming the terms is dynamically inserted
    if (!this.checked) {
      jQuery('#place_order').attr("disabled", "disabled");
    } else {
      jQuery('#place_order').removeAttr("disabled");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Terms <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox ios-switch" name="terms" id="terms"><br/>

<button id="place_order">Place order</button>

<hr/>

Create account <input class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" id="createaccount" type="checkbox" name="createaccount" value="1">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...