Валидация E-mail
Нашел готовый код, для валидации Email сообщений.
<script type="text/javascript"> $(document).ready(function() { $("#validate").keyup(function(){ var email = $("#validate").val(); if(email != 0) { if(isValidEmailAddress(email)) { $("#validEmail").css({ "background-image": "url('images/validyes.png')" }); } else { $("#validEmail").css({ "background-image": "url('images/validno.png')" }); } } else { $("#validEmail").css({ "background-image": "none" }); } }); }); function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); return pattern.test(emailAddress); } </script> <input type='text' name='email[1]' id='validate' ><span id='validEmail'></span> Все отлично работает, но мне нужно делать валидацию, например в нескольких инпут на одной страничке, дописываю нужные инпуты <input type='text' name='email[2]' id='validate' ><span id='validEmail'></span> <input type='text' name='email[3]' id='validate' ><span id='validEmail'></span> <input type='text' name='email[4]' id='validate' ><span id='validEmail'></span> Но валидация работает только с первым. Помогите править код, чтобы валидация работала на всех инпутах. Заранее благодарен. |
oopros,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript"> $(function() { $(".validate").on('input',function() { var email = $.trim(this.value), $span = $(this).next(); if (email) { if (isValidEmailAddress(email)) { $span.css({ "background-image": "url('images/validyes.png')" }); } else { $span.css({ "background-image": "url('images/validno.png')" }); } } else { $span.css({ "background-image": "none" }); } }); }); function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); return pattern.test(emailAddress); } </script> </head> <body> <input type='text' name='email[1]' class='validate' ><span></span> <input type='text' name='email[2]' class='validate' ><span></span> <input type='text' name='email[3]' class='validate' ><span></span> </body> </html> |
странно, но по-моему не работает
|
Цитата:
|
http://c2n.me/3myPY8U
скрин. Ввожу email и иконки валидности не выводятся. |
Цитата:
.validate + span {тут размеры хотябы} |
<style> #validEmail { margin-top: 4px; margin-left: 2px; position: absolute; width: 16px; height: 16px; } </style> У меня был такой css рабочий с одной формой. Но почему-то с его применением ваш код тоже не работает |
Цитата:
тестируйте код ниже и почитайте что нибудь про html css js <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .validate + span { display: inline-block; width: 38px; height: 28px; background-size: auto; background-repeat: no-repeat; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $(".validate").on('input',function() { var email = $.trim(this.value), $span = $(this).next(); if (email) { if (isValidEmailAddress(email)) { $span.css({ "background-image": 'url("http://javascript.ru/forum/images/smilies/dance3.gif")' }); } else { $span.css({ "background-image": 'url("http://javascript.ru/forum/images/smilies/cray.gif")' }); } } else { $span.css({ "background-image": 'none' }); } }); }); function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); return pattern.test(emailAddress); } </script> </head> <body> <input type='text' name='email[1]' class='validate' ><span></span> <input type='text' name='email[2]' class='validate' ><span></span> <input type='text' name='email[3]' class='validate' ><span></span> </body> </html> |
Спасибо за помощь, все получилось!
|
Часовой пояс GMT +3, время: 22:15. |