2015-01-06 5 views
-1

Я пытаюсь проверить электронную почту с помощью jquery. При нажатии на недействительный специальный символ, который не будет использоваться в сообщении электронной почты, чтобы оно отображалось неверным идентификатором электронной почты. Если он действителен
он может быть отправлен для заполнения других деталей.Проверка идентификатора электронной почты с помощью jquery

Вот код.

$("#emailid").bind("keypress", function (event) { 
    if (event.charCode != 0) { 
     var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
     var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
     if (!filter.test(emailid)) { 
      alert('Please enter a valid email address'); 
      event.preventDefault(); 
      return false; 
     } 
    } 
    }); 

HTML:

<div> 
<label>Email Id </label> 
<input type="text" name="emailid" id="emailid" style="width: 300px;border:solid 1px #0096ce;"/> 
</div> 

В этом коде, если ввести буквы или символы он отображает сообщение об ошибке. Скажите, пожалуйста, что не так с кодом

+1

Почему бы не использовать событие 'onblur' вместо нажатия клавиши? –

+1

Что не так? Вы называете это при каждом нажатии клавиши, конечно, это неверно, когда они начинают печатать! – epascarello

+0

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

ответ

1

Alternative, что я использовал, чтобы проверить электронную почту с на размытость, вы можете попробовать:

$("#emailid").on("blur", function (event) { 
    var str = $(this).val(); 
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

    if (!filter.test(str)) { 
     alert('Please enter a valid email address'); 
     return false; 
    } 
}); 

DEMO

-2

Вы можете изменить type="text" на `type =" email ". В этом случае вам не нужно использовать jQuery. :)

+0

Я пробовал использовать type = "email", но он не работал в моей php-форме – riya

-1

Если вы хотите отобразить предупреждение вы можете сделать это:

function isvalidEmail(email) { 
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    return regex.test(email); 
} 


$("#emailid").keyup(function (event) { 
    var emailValue = $(this).val(); 
    console.log(emailValue); 
    if(!isvalidEmail(emailValue)){ 
    alert('Please enter a valid email address'); 
    } 
}); 

JS скрипку ссылка:

http://jsfiddle.net/w0yoaqs5/

+0

Как это иначе? – epascarello

1

Попробуйте это ..

<input type="email" class="email"/> 

<div id="message"></div> 
<script> 
$('.email').on('keyup', function(){ 
    var valid = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/.test(this.value) && this.value.length; 
    $('#message').html('It\'s'+ (valid?'':' not') +' valid'); 
}); 
</script> 

DEMO

http://jsfiddle.net/o7t8991c/

-1

Использование Jquery с предупреждения на недопустимый адрес электронной почты, DEMO

<h4> 
    <br />Email <span>*</span> 
    </h4>      
    <input type="text" id="Email" name="Email" maxLength="50" size="45" /> 

$("#Email").blur(function() 
{ 
var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
var emailaddress = $("#Email").val(); 
if(!emailReg.test(emailaddress)) 
{ 
     alert('Please enter valid Email address!'); 
     return false; 
} 
}); 

OR Использование функции javascript regular expressions, вероятно, путь. Пример (Demo):

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(email); 
} 

Примечание: Но имейте в виду, что не следует полагаться только на проверки JavaScript. JavaScript можно легко отключить. Это также должно быть проверено на стороне сервера.

+0

И вы действительно решили проблему. – epascarello

+0

Почему downvote? его рабочий пример. – Zeeshan

+0

Он не решает АКТУАЛЬНОЙ ПРОБЛЕМЫ. Вопрос не в том, как проверить электронную почту. – epascarello

Смежные вопросы