Показать, что не так с адресом электронной почты, используя jquery

0

У меня есть 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;
}
?>
Теги:
email

2 ответа

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]+$/)
  • 0
    Можете ли вы показать, как вы бы разбили это, чтобы показать, какие части отсутствуют?
  • 0
    @CBC_NS, я не поняла ваш вопрос, вы можете проверить это на скрипке, которую я предоставил.
Показать ещё 2 комментария
2
$('#email').on('blur', function(){
    if(this.value.indexOf('.gov') > -1 || this.value.indexOf('.mil') > -1){
        //it valid, do nothing, or something..
    }else{
        alert('You must enter a valid Government or Military issue email address!');
        $(this).focus();
    }
});

Здесь jsFiddle

Ещё вопросы

Сообщество Overcoder
Наверх
Меню