Всем привет. Речь конечно же пойдет о кнопке на странице сайта или какого-то веб-приложения. Мы будем делать ее неактивной через JS, но для этого нам нужно создать условие, то есть в каких случаях кнопка будет неактивной, потому что оставлять ее в этом положении навсегда не имеет смысла. В большинстве случаев это делается при проверке каких-то данных в форме и там как раз есть условие — если проверка на заданные условия пройдена, то кнопку сделаем активной, если нет — нажатие на кнопку будет запрещено. Я уже писал про валидацию номера телефона на JS, поэтому мы можем частично воспользоваться кодом, который приведен в статье. неактивная кнопка а HTML выглядит так:
<buttondisabled="true">Кнопка</button>
<button disabled="true">Кнопка</button>
Или так:
<inputtype="submit"disabledvalue="Кнопка"/>
<input type="submit" disabled value="Кнопка"/>
А так же:
<button disabled>Кнопка</button>
<button disabled>Кнопка</button>
<inputtype="submit"disabledvalue="Кнопка"/>
<input type="submit" disabled value="Кнопка"/>
То есть кнопке просто добавляется атрибут disabled и дальше будет зависеть от контекста. В каких случаях атрибуту присваивать значение TRUE, а в каких FALSE. Теперь можно перейти к конкретным примерам.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function validatePhone(phone){var regex =/^(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$/;return regex.test(phone);}
let inp = document.querySelector('.inp');
let btn = document.querySelector('.btn');
btn.setAttribute('disabled',true);
inp.oninput=function(){
let phone = document.querySelector('.inp').value;if(!validatePhone(phone)){
btn.setAttribute('disabled',true);}else{
btn.removeAttribute('disabled');}}
function validatePhone(phone){
var regex = /^(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$/;
return regex.test(phone);
}
let inp = document.querySelector('.inp');
let btn = document.querySelector('.btn');
btn.setAttribute('disabled', true);
inp.oninput = function(){
let phone = document.querySelector('.inp').value;
if (!validatePhone(phone)){
btn.setAttribute('disabled', true);
}else{
btn.removeAttribute('disabled');
}
}
Эта конструкция кода проверяет номер телефона в формате +7 и пока не будет введен верный номер в поле — кнопка останется неактивной. Как только номер будет соответствовать заявленным требованиям, то есть регулярному выражению — кнопка станет активной. То же самое мы можем сделать для Email адреса. Все, что нужно сделать, это поменять регулярное выражение в переменной regex, которое будет проверять именно Email.
Соответственно сделать кнопку неактивной на JS можно и для других данных, когда форма содержит гораздо больше полей и все их нужно проверить. В этом уроке я привел основной принцип, а реализация и проверки будут зависеть от конкретной задачи.
хочу попросить вас сделать на моём сайте кнопку неактивной до ввода номера. скажу спасибо переводом на карту) прошу связаться со мной
Очень занят сейчас.