2013-10-03 65 views
0

這是我使用JavaScript的電子郵件地址驗證代碼。警報消息正常工作,但當我提交給出有效的電子郵件地址時,會提示「請提供有效的電子郵件地址」。請幫幫我。使用javascript的電子郵件驗證無法正常工作

if(email=="") 
{ 
    alert("Enter emailid"); 
    $("#email").focus(); 
    return false; 
} 

else if(email!="") 
{ 
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

    if (!filter.test(email.value)) 
    { 
     //alert(email) 
     //alert(filter.test(email.value)) 
     alert('Please provide a valid email address'); 
     email.focus(); 
     return false; 
    } 
} 
+1

您測試的是哪個電子郵件地址?另外:「email」的價值是什麼? – Kippie

+1

http://stackoverflow.com/questions/46155/validate-email-address-in-javascript – bhb

+0

https://emailtester.pieterhordijk.com/test-pattern/NjQ只是說... – PeeHaa

回答

0

試試這個

function ValidateEmail(){ 

var email = $('#txtemail').val(); 
if(email=="") 
{ 
    alert("Enter emailid"); 
    $("#txtemail").focus(); 
    return false; 
} 

else if(email!="") 
{ 
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

    if (!filter.test(email)) 
    { 
     //alert(email) 
     //alert(filter.test(email.value)) 
     alert('Please provide a valid email address'); 
     $('#txtemail').focus(); 
     return false; 
    } 
} 
} 

調用該函數ValidateEmail的onclick事件你的按鈕。還請注意,您正在做的事情錯了這條線

if (!filter.test(email.value)) 

變化這是

if (!filter.test(email)) 

希望這會有所幫助。

工作DEMO

+0

這現在正常工作,謝謝你的幫助先生。 – user2837585

0

不是你的問題的直接答案......但你可以不使用HTML5電子郵件輸入爲此目的?爲什麼在瀏覽器可以處理它的時候爲javascript驗證呢?使用這樣的事情:

<input type="email" name="email"> 

有很多優點,使用這種包括屏幕上的鍵盤來配合它(添加@和.com選項)。

對於不同類型的HTML5輸入類型,請參閱本:http://www.w3schools.com/html/html5_form_input_types.asp

+2

請不要引用w3schools 。已知這是不準確的。見http://www.w3fools.com/。 –

+0

@EtienneMiret閱讀此:http://meta.stackexchange.com/questions/120621/w3fools-alternatives – Zero

+0

我是鏈接到w3fools,而不是OP,所以下次你鏈接到一個更好的資源。但是,爲了完整起見,請讓我鏈接到[HTML5規範](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#attr-input-類型)關於不同的輸入類型。 –

0

有一個在你的代碼,這使得該警報顯示一個小錯誤。

敬請期待此行代碼中的

if (!filter.test(email.value)) 

,代之以

if (!filter.test(email)) 

可變電子郵件保存表單的電子郵件字段的值。

而另一個變化是,尋找這一行

email.focus(); 

並改變這一個

$("#email").focus(); 
相關問題