Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2017, 18:26
Аспирант
Отправить личное сообщение для bonny Посмотреть профиль Найти все сообщения от bonny
 
Регистрация: 11.06.2017
Сообщений: 34

Валидация input
Ребята, помогите скрипт написать.
Есть поле с проверкой
<input id="email" type="email" name="jform[contact_email]" class="validate required" onkeyup="checkSendBox();" required>
<label for="email" data-error="неверно" data-success="правильно">Email <span class="required">*</span></label>
</div>

Мне нужен скрипт, который отключает активность кнопки, если поле говорит, что нет валидации.
Ранее я такой скрипт сделал для проверки полей на длину. Ещё бы добавить валидность email.
Сам я что-то пыхтел и всё равно не получилось.
function checkSendBox() {
			var name = $('#last_name').val();
			var email = $('#email').val();
			var text = $('#textarea1').val();
			
			if (name.length >= 2 && email.length >= 5 && text.length >= 5)
				$('#sendButton').removeAttr('disabled');
			else
				$('#sendButton').attr('disabled','disable');
		}
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2017, 19:18
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<meta charset="utf-8">
</head>
<body>
<input id="email" type="email" value="">
<button id="sendButton" disabled>Отправить</button>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
	$('#email').keyup(function(){
		$('#sendButton').prop('disabled', $(this).val().length<=5);
	});
</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 11.06.2017, 19:37
Аспирант
Отправить личное сообщение для bonny Посмотреть профиль Найти все сообщения от bonny
 
Регистрация: 11.06.2017
Сообщений: 34

j0hnik, так она только на валидацию по длине?
Так я такое сделал.
Мне нужно валидацию на допустимые символы email.
Поле уже само проверяет его на символы и выводит сообщение вот. Вот я бы хотел, чтобы скрипт эту валидацию видел и включал/выключал кнопку.
Это поле с html5 - http://materializecss.com/forms.html
картинка - http://prntscr.com/fij59m
Ответить с цитированием
  #4 (permalink)  
Старый 11.06.2017, 20:40
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<meta charset="utf-8">
</head>
<body>
<input id="email" type="email">
<button id="sendButton" disabled>Отправить</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/;
	$('#email').keyup(function(){
		$('#sendButton').prop('disabled', !pattern.test($(this).val()));
	});
</script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 11.06.2017, 23:18
Аспирант
Отправить личное сообщение для bonny Посмотреть профиль Найти все сообщения от bonny
 
Регистрация: 11.06.2017
Сообщений: 34

Вот это уже рабочая тема. Тоже делал с проверкой на символы, но что-то не пошло.
Потом решил, что где-то должна быть в html5 фигня, которая сообщает что не валидно. Ну и так подойдёт.
Ответить с цитированием
  #6 (permalink)  
Старый 12.06.2017, 11:40
Аспирант
Отправить личное сообщение для bonny Посмотреть профиль Найти все сообщения от bonny
 
Регистрация: 11.06.2017
Сообщений: 34

j0hnik, как такой код объединить ещё с проверкой полей #last_name, #textarea1, которые уже на длину. Все условия должны выполнятся.
Ответить с цитированием
  #7 (permalink)  
Старый 12.06.2017, 13:24
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<meta charset="utf-8">
</head>
<body>
<input id="lastName" type="text">
<input id="email" type="email">
<textarea id="textarea1" type="text"></textarea>

<button id="sendButton" disabled>Отправить</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/;
	$('#email, #lastName, #textarea1').keyup(function(){
		$('#sendButton').prop('disabled', !pattern.test($('#email').val()) || $('#lastName').val().length<=5 || $('#textarea1').val().length<=5);
	});
</script>
</body>
</html>


все просто, все условия надо проверить
Ответить с цитированием
  #8 (permalink)  
Старый 12.06.2017, 13:34
Аспирант
Отправить личное сообщение для bonny Посмотреть профиль Найти все сообщения от bonny
 
Регистрация: 11.06.2017
Сообщений: 34

Благодарю. Работает как нужно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Валидация input по количеству введенных символов DDim1000 Элементы интерфейса 3 31.12.2016 19:07
Динамическое копирование значения из input в input с одинаковыми атрибутами name ami_moor jQuery 2 10.08.2016 17:02
Валидация Input sherzo Элементы интерфейса 4 04.09.2014 15:06
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55