@twwebrus

Как добавить уведомление к проверке чекбоксов?

Доброго времени суток!
На сайте имеется форма обратной связи с чекбоксом (соглашение).
Если ввести данные в поля и не нажать на галочку - для пользователя ничего не происходит. В консоли браузера ошибка - An invalid form control with name='check' is not focusable. Соответственно если поставить галочку форма работает исправно.

Вопрос в следующем - как можно добавить явное предупреждение для пользователя о том, что необходимо поставить галочку? Так же по какой-то причине не работает этот участок в JS - else if(!(reg.test(phone))) err = 'Ошибка ввода данных';

<form action="success.php" class="contact-form" method="post">
						<div class="contact-form__wrap bg-1">	
							<input type="text" class="tel" name="phone" placeholder="Ваш номер телефона" required>
							<button data-submit name="send" class="btn">Подать заявку</button>
						</div>
						<label class="checkobx-wrap d-flex">
							<input type="checkbox" name="check" class="checkbox" required>
							<span class="checkbox-custom"></span> 
							<span class="label">
								Согласен на обработку персональных данных <span>и соглашаюсь c политикой конфиденциальности</span>
							</span>
						</label>
					</form>


<?php
header("Content-Type: text/html; charset=utf-8");

$phone = htmlspecialchars($_POST["phone"]);

$refferer = getenv('HTTP_REFERER');
$date=date("d.m.y");  
$time=date("H:i");
$myemail = "project@tw.ru";

$tema = "Сообщение с сайта";
$message_to_myemail = "Свяжитесь со мной:
<br><br>
Телефон: $phone<br>
Источник (ссылка): $refferer";

mail($myemail, $tema, $message_to_myemail, "From: Sitename <project@tw.ru> \r\n Reply-To: Sitename \r\n"."MIME-Version: 1.0\r\n"."Content-type: text/html; charset=utf-8\r\n" );
?>


$('form').submit(function(e) {
		e.preventDefault();
		var err = false;
		var form = $(this);
		var phone = form.find('.tel').val();
		var reg = /^((\+?7|8)[ \-]?)?((\(\d{3}\))|(\d{3}))?([ \-])?(\d{3}[\- ]?\d{2}[\- ]?\d{2})$/;
		if(phone.length < 1) err = 'Это обязательное поле';
		else if(!(reg.test(phone))) err = 'Ошибка ввода данных';
		if(err) {
			form.find('.input-error').html(err);
			form.find('.tel').css('box-shadow', 'inset 0 0 0 1px #fd9595');
			form.find('.contact-form__wrap').removeClass('bg-1').addClass('bg-2');
			return false;
		}else {
			form.css('opacity', 0);
			var load = form.parent('.questions__wrap').children('.loader');
			var success = form.parent('.questions__wrap').children('.success');
			load.css('opacity', 1);
			$.ajax({
				 type: 'POST',
                 url: form.attr('action'),
                 data: form.serialize(),
				 success: function(){
				    setTimeout(function() {
				    	form.find('.tel').css('box-shadow', 'inset 0 0 0 1px #b0afaf');
                        load.css("opacity", 0);
                        success.animate({opacity: 1}, 200);
                        setTimeout(function() {
	                        success.css('opacity', 0);
	                        form.get(0).reset();
					    	form.animate({opacity: 1}, 600);
					    	form.find('.contact-form__wrap').removeClass('bg-2').addClass('bg-1');
                    	}, 4000);
                    }, 1500); 
				}
			});
		}
	});
  • Вопрос задан
  • 510 просмотров
Пригласить эксперта
Ответы на вопрос 2
@jimquery
Блокировать кнопку отправки пока не будет поставлена галочка.
Пример
Ответ написан
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
Поставьте кнопке submit по умолчанию disabled и снимайте скриптом. А чекбоксу поставьте required. Впринципе достаточно второго.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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