2014-09-11 5 views
0

JQuery를 처음 사용하고 전자 메일 주소를 확인하는 간단한 유효성 검사를 작성했습니다. 그러나 예상대로 작동하지 않습니다. 누군가이 문제를 해결할 것을 제안 할 수 있습니까?JQuery 전자 메일 유효성 검사가 작동하지 않습니다.

<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> 

답변

2

요소가 작성되기 전에 코드가 실행되므로 처리기가 연결되지 않습니다. 요소가 작성된 후 코드가 실행되도록 코드를 $(document).ready()에 래핑해야합니다. 또한

는 선택기는 시도 대신 $("#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

catch되지 않은 형식 오류 : 정의되지 않은 –

+0

의 특성 '일치'를 읽을 수 없습니다 http://jsfiddle.net/w4fwj5Lp/ –

1

$("#email").val()를 사용해야 대소 문자를 구별이 -

<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> 

또는 당신은 단순히

[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
email 데이터 주석을 사용할 수 있습니다

아래 코드를 참조하면 U를 해결할 수 있습니다. 문제.

<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> 
관련 문제