2014-02-22 100 views
0

我有一個html表單請求任何電子郵件。目前,我有一個php函數來查看條目並確認它是否是有效的政府或軍事電子郵件。 (這不包括所有的電子郵件類型,非常簡單)。我試圖找出一種方法來驗證電子郵件是否有效,並提醒用戶他們在使用jQuery時輸入的電子郵件的具體錯誤。以下是我到目前爲止。使用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; 
} 
?> 

回答

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(/^[ -~][email protected][ -~]+\.[mil|gov]+$/) 
+0

你能夠顯示你將如何打破這種長達顯示部分失去了什麼? –

+0

@CBC_NS,我不明白你的問題,你可以在我提供的小提琴上檢查這個工作。 –

+0

@Toni_Almeida你的小提琴工作正常。你看到你是如何看待所有的細分市場嗎?我想知道如何分解它,以便您可以提醒用戶該條目的哪些部分不正確。 –

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

相關問題