0

目前,下面的脚本使用 ajax 检查数据库以查看之前是否使用过电子邮件地址。我的问题是如何停止它检查数据库,直到它是一个完全定义的EMAIL地址?

表单域

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

2 回答 2

1

而不是if(username.length > 2){...使用类似的东西:

if (/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[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())) {...
于 2013-01-06T00:24:48.440 回答
0

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

非常类似于 ialencar 发布的内容:

isValidateEmail = function(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[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");
    }
}
于 2013-01-06T00:31:32.067 回答