2013-01-06 52 views
0

目前,下面的腳本可以使用ajax檢查數據庫,以查看之前是否使用過電子郵件地址。我的問題是如何停止檢查數據庫,直到它是一個完全定義的EMAIL地址?Ajax電子郵件地址驗證程序

表單域

<label for="email">Email: *&nbsp;</label><br/> 
    <input id="username" name="username" type="email" value="" onblur="return check_username();" /> 

AJAX腳本

<script type="text/javascript"> 

$(document).ready(function() { 
    $('#Loading').hide();  
}); 

function check_username(){ 

    var username = $("#username").val(); 
    if(username.length > 2){ 
       $.post("../script/check_username_availablity.php", { 
      username: $('#username').val(), 
     }, function(response){ 
      $('#Info').fadeOut(); 

      setTimeout("finishAjax('Info', '"+escape(response)+"')", 450); 
     }); 
     return false; 
    } 
} 

function finishAjax(id, response){ 

    $('#'+id).html(unescape(response)); 
    $('#'+id).fadeIn(1000); 
} 

</script> 
+0

做'的JavaScript電子郵件regex'或搜索'的JavaScript驗證email' – charlietfl

回答

1

代替if(username.length > 2){...使用類似:

if (/^(([^<>()[\]\\.,;:\[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,}))$/.test(username.val())) {... 
0

http://jsfiddle.net/cmontgomery/gEL7n/

非常相似,ialencar發佈:

isValidateEmail = function(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); 
} 

check_username = function() { 
    var username = $("#username").val(); 
    if(isValidateEmail(username)) { 
     $("#username-error").html(""); 
     console.log("ajax request..."); 
    } else { 
     $("#username-error").html("invalid email address"); 
    } 
}