Не активная кнопка с помощью disabled

Неактивная кнопка disabled HTML-CSS-JQUERY

В этой статье мы рассмотрим как сделать кнопку не активной, при не выполнении определенных условий в форме отправки данных на сайте. Напишем код для кнопки подтверждающей «Согласие на обработку персональных данных», данная тема сейчас востребована в связи с введение закона о «Персональных данных». То есть пока клиент при отправке формы не установит чекбокс напротив надписи «Согласие на обработку персональных данных», кнопка отправки будет не активна.

Кнопка отправить не активна при CSS disabled




<div class="check-policy">
	<input type="checkbox" id="policy" name="Согласие на обработку данных" value="Согласен">
	<label for="policy">Согласие на обработку персональных данных</label>
</div>



<button id="submit" disabled>Отправить</button>

Зададим тегу <button> значение disabled, которое задает не активность кнопки «Отправить». И немного украсим нашу кнопку и <input> type «checkbox» с помощью CSS.


body {
background-color: #1684af;
color: #fff;
}
label {
margin-bottom: 8px;
font-size: 13px;
}
input[type="checkbox"]:checked,
input[type="checkbox"]:not(:checked)
{
position: absolute;
left: -9999px;
}

input[type="checkbox"]:checked + label,
input[type="checkbox"]:not(:checked) + label{
display: inline-block;
position: relative;
padding-left: 20px;
line-height: 1;
cursor: pointer;
}

input[type="checkbox"]:checked + label:before,
input[type="checkbox"]:not(:checked) + label:before {
content: "";
position: absolute;
left: 0px;
top: 0px;
width: 12px;
height: 12px;
background-color: #ffffff;
}

input[type="checkbox"]:checked + label:after,
input[type="checkbox"]:not(:checked) + label:after {
content: "";
position: absolute;
-webkit-transition: all 0.2s ease;
-moz-transition: all 0.2s ease;
-o-transition: all 0.2s ease;
transition: all 0.2s ease;
}

input[type="checkbox"]:checked + label:after,
input[type="checkbox"]:not(:checked) + label:after {
left: 1px;
top: 1px;
width: 2px;
height: 2px;
border: 4px solid #F2622E;
}

input[type="checkbox"]:not(:checked) + label:after {
opacity: 0;
}

input[type="checkbox"]:checked + label:after {
opacity: 1;
}
.check-policy {
font-size: 13px;
}
.btn {
padding: 0.75em 1.75em;
display: inline-block;
line-height: 1;
margin: 2em 0;
color: #fff;
background-color: #F2622E;
border: none;
}
.btn:hover {
cursor: pointer;
}
.btn:disabled, .btn:hover:disabled {
background-color: rgba(0,0,0,.1);
border: 1px solid rgba(0, 0, 0, .1);
cursor: not-allowed;
}

А теперь добавим к input JS событие:



<div class="check-policy">
  <input type="checkbox" id="policy" name="Согласие на обработку данных" value="Согласен" onchange="document.getElementById('submit').disabled = !this.checked;">
  <label for="policy">Согласие на обработку персональных данных</label>
</div>

<button id="submit" class="btn" disabled>Отправить</button>

что бы при нажатии на строчку с «Согласие на обработку персональных данных» кнопка «Отправить» стала активной.

Активная кнопка в HTML с помощью CSS

Посмотреть как это работает можно здесь:

See the Pen
Disabled button
by Dmitry (@iboris)
on CodePen.

Оцените статью
Блог веб-студии
Добавить комментарий