2014-09-11 1 views
0

Je suis nouveau sur JQuery et j'ai écrit une validation simple pour vérifier l'adresse e-mail. Mais cela ne fonctionne pas comme prévu. Quelqu'un peut-il suggérer de résoudre ce problème?La validation de l'e-mail JQuery ne fonctionne pas

<script> 
    $("#email").blur(function() { 
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
if($("#Email").val().match(mailformat)) 
{ 
alert("You have entered an valid email address!"); 
} 
else 
{ 
alert("You have entered an invalid email address!");  
} 
}); 
    </script> 
</head> 
<body> 
<label for="email" id="email-ariaLabel">Your email address:</label> 
<input id="email" name="email" type="email" class="required" title="This is a required field" /> <span class="msg error">Not a valid email address</span> 
<span class="msg success">A valid email address!</span> 

Répondre

2

Votre code sera exécuté avant la création des éléments, de sorte que le gestionnaire ne sera pas joint. Vous devez envelopper votre code dans $(document).ready() afin que le code s'exécute après la création des éléments.

En outre, les sélecteurs sont si vous sensibles devez utiliser $("#email").val() au lieu de $("#Email").val()

$(document).ready(function(){ 
    $("#email").blur(function() { 
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
    if($("#email").val().match(mailformat)) 
    { 
    alert("You have entered an valid email address!"); 
    } 
    else 
    { 
    alert("You have entered an invalid email address!");  
    } 
    }); 
}) 
+0

Uncaught TypeError: Impossible de lire la propriété 'match' undefined –

+0

http://jsfiddle.net/w4fwj5Lp/ –

1

Essayez ceci -

<script> 
    $("#email").blur(function() { 
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
if($("#email").val().match(mailformat)) 
{ 
    alert("You have entered an valid email address!"); 
} 
else 
{ 
    alert("You have entered an invalid email address!");  
} 
}); 
    </script> 
</head> 
<body> 
<label for="email" id="email-ariaLabel">Your email address:</label> 
<input id="email" name="email" type="email" class="required" title="This is a required field" /> <span class="msg error">Not a valid email address</span> 
<span class="msg success">A valid email address!</span> 

ou vous pouvez simplement utiliser l'annotation de données pour email comme

[StringLength(100, ErrorMessage = "Email can accept maximum 100 characters.")] 
[RegularExpression("^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+(?:[a-zA-Z]{2}|aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel)$", ErrorMessage = "Please enter valid email address.")] 
public string email { get; set; } 
0

Vous pouvez consulter le code ci-dessous, il va résoudre U r problème.

<script> 
     $("#email").blur(function() { 
     var mailformat = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
     var emailTextField = $("#email").val(); 
     if(!emailReg.test(emailTextField) || emailTextField.length == 0) 
     { 
      alert("You have entered an invalid email address!"); 
     } 
     else 
     { 
      alert("You have entered an valid email address!"); 
     } 
     }); 
    </script> 
Questions connexes