WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Валидация Email

Решил сделать валидацию, чтобы регистрация была доступна только для перечисленных почтовых ящиков.

Собрал код из разных кусков, немного доделал сам, теперь нужна помощь.

Вот сам скрипт

const EMAIL_REGEXP = /^[^ ]+\@(?=mail.ru$|gmail.com$|yandex.ru$|ukr.net$)/;
const input = document.getElementById('user_email');

function isEmailValid(value) {
	return EMAIL_REGEXP.test(value);
}

let btn = document.getElementById('wp-submit');
btn.setAttribute('disabled', true);

function onInput() {
	if (isEmailValid(input.value)) {
		input.style.borderColor = 'green';
		btn.removeAttribute('disabled');
	} else {
		input.style.borderColor = 'red';
		btn.setAttribute('disabled', true);
	}
}
input.addEventListener('input', onInput);

Если вкратце, пока Email не будет введен правильно, кнопка регистрация будет не активна к ней добавлен disabled так же поле Email горит borderColor red

let btn = document.getElementById('wp-submit');
btn.setAttribute('disabled', true);

Однако хотелось бы сделать, чтобы при клике на кнопку wp-submit, выводилось сообщение "Email введен не корректно"
В данном случаи .on('click') не работает из-за добавленного к кнопке disabled

Как сделать чтобы при не правильно введенном Email и клике по кнопке выводилось сообщение не понятно.

Заметки к вопросу:
Kama 1.3 года назад

Делать такую валидацию желательно на стороне сервера. disabled атрибут можно снять легко...

Что касается твоего вопроса, вместо onclick просто используй событие mouseup.

el-lable 1.3 года назад

Соглашусь, надеяться на валидацию на стороне клиента категорически неприемлимо.
Делайте на стороне сервера например, на аяксе.
А в вордпрессе есть встроенная функция для этого https://wp-kama.ru/function/is_email

lethalblo 1.3 года назад

Как настроить защиту на стороне сервера разобраться не удалось. Этой защиты должно хватить, главная задача ограничить количество регистраций пользователей, которые криво вводят свой эмайл.

В итоге сейчас пошел немного другим путем теперь если водят криво свой эмайл то выходит вот такая защита

if($_POST['wp-submit-prov']){
if ($_POST['prov2'] != 'yesemail')
	exit('Сработала защита email.');

}

Можно как-то доработать это, чтобы выводилось простое сообщение с ошибкой, наподобие того что выводится, при не правильном вводе логина или пароля. Тоесть чтобы выводилось как стандартное сообщение от ВП.

0
lethalblo
1.3 года назад 15
  • 0

    поддерживаю предыдущих ораторов по валидации.

    Чтобы проинформировать пользователя на кнопке, можно добавить атрибут title к заблокированной кнопке, и снять его, когда кнопка разблокирована.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация