2014-01-18 220 views
0

要檢查電子郵件地址是否是從Gmail我嘗試以下的jQuery代碼,但我得到Uncaught TypeError: Cannot call method 'indexOf' of undefinedjQuery的未捕獲的異常錯誤

CODE

$(document).ready(function() { 
    $("#sendit").click(
    function() { 
     var str1 = $("#email").value; 
     var str2 = "gmail.com"; 
     if(str1.indexOf(str2) != -1){ 
     alert("found"); 
     } 
    }); 
}); 

有沒有在我的語法的錯誤?

+0

如果你的語法錯誤,你會得到*語法錯誤*。您試圖訪問一個對象的不存在的屬性('.value'),它將返回'undefined'。這是*運行時錯誤*和代碼中的邏輯錯誤(但不是語法錯誤)。 –

回答

1

DEMO

致電val()方法。

var str1 = $("#email").val(); 

可能是你的jQuery衝突的受害者。看看這個新的小提琴中的代碼是否適合你。

UPDATED FIDDLE

+0

更改仍然收到相同的錯誤。 – lock

+0

檢查已更新小提琴中的代碼。 – Anup

1

它應該是

var str1 = $("#email").val(); 

$("#email")返回一個jQuery包裝對象,它不具有value屬性,它屬於DOM元素。 jQuery對象有一個返回值的方法val()

+0

更改仍然收到相同的錯誤。 – lock

+0

@lock是否有一個ID爲'email'的元素 –

+0

@lock可以分享與元素'email'有關的html –

0

,您應該使用的valueval()代替

變化

var str1 = $("#email").value; 

var str1 = $("#email").val(); 
0

應該使用VAL(),而不是價值

var str1 = $("#email").val() 
相關問題