Ivseti
@Ivseti
Фронтенд HTML, CSS и немного JS с PHP

Почему не срабатывает отключение кнопки в disabled при не нажатом cheked?

Условие, если два чекбокса не отмечены, то заблокировать кнопку. Если активны, разблокировать. Что делаю не так?

JS
function toggleButton()
      {
          var privacy-policy = document.getElementById('privacy_policy').checked;
          var shipping-payment = document.getElementById('shipping-payment').checked;

          if (privacy-policy && shipping-payment) {
              document.getElementById('place_order').disabled = false;
          } else {
              document.getElementById('place_order').disabled = true;
          }
      }


HTML - Чекбоксы
<div class="checkout-checkbox"><div class="checkout-checkbox-privacy-policy"><input type="checkbox" id="privacy_policy" name="privacy_policy" value="privacy_policy" class="custom-checkbox custom-checkbox-chek"><label id="label-checkout-checkbox" for="privacy_policy">Ознакомлен(а) с суммами и условиями <a class="link-privacy_policy" href="https://mishkafurs.ru/delivery">доставки и оплаты</a></label></div><div class="checkout-checkbox-shipping-payment"><input type="checkbox" id="shipping-payment" name="shipping-payment" value="shipping-payment" class="custom-checkbox"><label id="label-checkout-checkbox" for="shipping-payment">Даю согласие на&nbsp;обработку персональных данных и&nbsp;соглашаюсь<br> c&nbsp;<a class="link-checkout-checkbox" href="https://mishkafurs.ru/public-oferta">политикой конфиденциальности</a></label></div></div>


HTML - кнопка
<div class="box_button_cart"><div class="for_order_cart"><a href="/cart/" class="btn_go_cart">Назад в корзину</a></div><div class="for_order_cart2"><button type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="Перейти к оплате" data-value="Перейти к оплате">Перейти к оплате</button> </div> </div>
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ivseti
@Ivseti Автор вопроса
Фронтенд HTML, CSS и немного JS с PHP
Опять никто не помог:( Пришлось самому разгребать. Не работал скрипт из-за особенностей темы или woocomerce wp. Пришлось поставить код за кнопками. Так как чек бокса два у меня, то собственно вот модель:

JS
<script>
            var check1 = document.getElementById('shipping-payment'); // Получаем элемент по ID
            var check2 = document.getElementById('privacy_policy');
if (check1.checked == false && check2.checked == false ){ // Если элемент не выбран, то
    document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
}
check1.onchange = function () { // Отслеживаем изменение чекбокса
    if (check1.checked == false && check2.checked == false){ // Если элемент не выбран, то
        document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
    }
    else if (check1.checked == false && check2.checked !== false){ // Если элемент не выбран, то
        document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
    }

    else if (check1.checked !== false && check2.checked == false){ // Если элемент не выбран, то
        document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
    }
    else {
        document.getElementById('place_order').disabled = false; // Если выбран, то ставим свойсто disabled false
    }
}

check2.onchange = function () { // Отслеживаем изменение чекбокса
    if (check1.checked == false && check2.checked == false){ // Если элемент не выбран, то
        document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
    }

    else if (check1.checked == false && check2.checked !== false){ // Если элемент не выбран, то
        document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
    }

    else if (check1.checked !== false && check2.checked == false){ // Если элемент не выбран, то
        document.getElementById('place_order').disabled = true; // Элементу с ID mobileTemplates проставляем свойство disabled =true
    }
    
    else {
        document.getElementById('place_order').disabled = false; // Если выбран, то ставим свойсто disabled false
    }
}
        </script>


HTML
<div class="checkout-checkbox"><div class="checkout-checkbox-privacy-policy"><input type="checkbox" id="privacy_policy" name="privacy_policy" value="privacy_policy" class="custom-checkbox"><label id="label-checkout-checkbox" for="privacy_policy">Ознакомлен(а) с суммами и условиями <a class="link-privacy_policy" href="https://mishkafurs.ru/delivery">доставки и оплаты</a></label></div><div class="checkout-checkbox-shipping-payment"><input type="checkbox" id="shipping-payment" name="shipping-payment" value="shipping-payment" class="custom-checkbox"><label id="label-checkout-checkbox" for="shipping-payment">Даю согласие на&nbsp;обработку персональных данных и&nbsp;соглашаюсь<br> c&nbsp;<a class="link-checkout-checkbox" href="https://mishkafurs.ru/public-oferta">политикой конфиденциальности</a></label></div></div>

        <div class="box_button_cart"><div class="for_order_cart"><a href="/cart/" class="btn_go_cart">Назад в корзину</a></div><div class="for_order_cart2"><button type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="Перейти к оплате" data-value="Перейти к оплате">Перейти к оплате</button> </div> </div>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы