Aison
@Aison

Не срабатывает функция в скрипте JQuery, как поправить?

Привет, Ребят)

сделал небольшой скрипт проверки корректности ввода E-mail в input поле. Скрипт робит, но немного не так как нужно) на странице две формы(в каждом есть input где нужно ввести почту) и в одной из них скрипт робит, в другом нет. причём вообще никаких эмоций(

HTML
<form>
<input type="email" name="email" id="email" placeholder="E-mail" autocomplete="off" required>
<button type="submit" class="btn" id="btnreg" name="send_btn" disabled>ОСТАВИТЬ</button>
</form>
<form>
<input type="email" name="email" id="email" placeholder="E-mail" autocomplete="off" required>
<button type="submit" class="btn" id="btnreg" name="send_btn" disabled>ОСТАВИТЬ</button>
</form>

Кнопка с ID btnreg по дефолту не активна, когда пользователь вводит верный e-mail, то кнопка становится активной.

JS
$(document).ready(function () {
	var b = /^[.a-z0-9_-]+@(outlook.com|mail.ru|list.ru|bk.ru|inbox.ru|gmail.com|ya.ru|yandex.ru|yandex.ua|rambler.ru|icloud.com|yahoo.com)$/i;
	var a = $("#email");
	a.blur(function () {
		if (a.val() != "") {
			if (a.val().search(b) == 0) {
				$("#btnreg").attr("disabled", false);
			} else {
				$(function() {
					$('#error_2').dialog({
						modal: true,
						autoOpen: true,
						show: 'fade',
						hide: 'fade',
						width: 600,
						height: 320,
						dialogClass: "modalfixed",
					});
					$('.modalfixed.ui-dialog').css({position:"fixed"});
					$('#error_2').dialog( "option", "position", ['0','0'] );
				});
				$("#btnreg").attr("disabled", true);
			}
		} else {
			$(function() {
				$('#error_1').dialog({
					modal: true,
					autoOpen: true,
					show: 'fade',
					hide: 'fade',
					width: 600,
					height: 120,
					dialogClass: "modalfixed",
				});
				$('.modalfixed.ui-dialog').css({position:"fixed"});
				$('#error_1').dialog( "option", "position", ['0','0'] );
			});
			$("#btnreg").attr("disabled", true)
		}
	})
});


Вопрос в том, как заставить работать и на второй форме, прошу помощи^^
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
У вас у обоих инпутов одинаковые id (и одинаковые name), потому и не работает. Например здесь
if (a.val() != "")
всегда проверяется значение в первом инпуте, даже, если функция запущена по событию blur на втором инпуте.

Offtop: Это тупо просить пользователя дважды писать email "для проверки". Это же не пароль, который звёздочками отображается. Я в таких случаях все копипастчу email.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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