使用jquery显示电子邮件地址的错误

时间:2014-02-22 19:28:02

标签: javascript php jquery email

我有一个html表单,请求任何电子邮件。目前,我有一个PHP函数,查看该条目并确认它是否是有效的政府或军事电子邮件。 (这不包括所有电子邮件类型。这很简单)。我正试图找出一种方法来验证电子邮件是否有效,并提醒用户使用jquery时他们输入的电子邮件的具体错误。以下是我到目前为止的情况。

<form id="mil" name="mid"  action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
<input type="text" id="email" name="email" style="width: 200px;">
<input type="submit" value="Submit" id="Submit" name="Submit">
</form>
<?php
function isValidEmail($email){ 
    if (filter_var( $email, FILTER_VALIDATE_EMAIL ) == true){
        if(strpos($email, '.gov') !== false || strpos($email, '.mil') !== false)
            return true; 
    } else { 
    return false; 
    }    
} 


if($_POST['Submit'] == "Submit")
{
    $valid = isValidEmail($_POST['email']);
    if($valid == false): echo "Not a government or military email";
    else: echo "Valid email";
    endif;
}
?>

2 个答案:

答案 0 :(得分:2)

$('#email').on('blur', function(){
    if(this.value.indexOf('.gov') > -1 || this.value.indexOf('.mil') > -1){
        //it's valid, do nothing, or something..
    }else{
        alert('You must enter a valid Government or Military issue email address!');
        $(this).focus();
    }
});

Here's a jsFiddle

答案 1 :(得分:1)

仅在用户尝试提交表单时才会验证。

FIDDLE

<强> HTML

<form id="mil" ... onsubmit="return valForm()"> 

<强> JS

function valForm() {
    if(!$('#email').val().match(/.gov|.mil/)) {
        alert("Not Valid Email");
        return false;
    }
    return true;
}

修改

使用此正则表达式,您可以完整地验证用户电子邮件:

$('#email').val().match(/^[ -~]+@[ -~]+\.[mil|gov]+$/)