Валидация 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');
}
|
<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>
|
j0hnik, так она только на валидацию по длине?
Так я такое сделал. Мне нужно валидацию на допустимые символы email. Поле уже само проверяет его на символы и выводит сообщение вот. Вот я бы хотел, чтобы скрипт эту валидацию видел и включал/выключал кнопку. Это поле с html5 - http://materializecss.com/forms.html картинка - http://prntscr.com/fij59m |
<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>
|
Вот это уже рабочая тема. Тоже делал с проверкой на символы, но что-то не пошло.
Потом решил, что где-то должна быть в html5 фигня, которая сообщает что не валидно. Ну и так подойдёт. |
j0hnik, как такой код объединить ещё с проверкой полей #last_name, #textarea1, которые уже на длину. Все условия должны выполнятся.
|
<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>
все просто, все условия надо проверить |
Благодарю. Работает как нужно.
|
| Часовой пояс GMT +3, время: 12:02. |