2013-02-11 112 views
2

當下面的函數工作時,我得到「無法獲取屬性的值'match':object爲null或undefined」。有趣的部分是它在另一頁上完美地工作。有任何想法嗎?無法獲取屬性「匹配」的值:對象爲空或未定義

function valPoBox(sender, args) { 
    var hasPObox = /^[P|p]*(OST|ost)*\.*\s*[O|o|0]*(ffice|FFICE)*\.*\s*[B|b][O|o|0][X|x]\s*(\d.)*/gi; 
    var StreetAddress = $('.streetaddress').val(); 

    if (StreetAddress.match(hasPObox)) { 
     args.IsValid = false; 

     sender.ErrorMessage = "Address must not contain P.O. Box"; 
     $('.valPoBox').attr("ErrorMessage", sender.ErrorMessage); 
    } 
    else { 
     args.IsValid = true; 
    } 

} 
+3

由於未找到任何元素,最可能'$('。streetaddress')。val()'返回未定義。使用'console.log($('。streetaddress')。val())'和'console.log($('。streetaddress')。')確認' – 2013-02-11 19:52:24

+0

釘住它。謝謝凱文! – reds184 2013-02-11 20:00:49

回答

1

所有字符串有match方法,所以你面對的絕不能是一個字符串。 .val()方法只返回兩個不同的東西:找到元素時的字符串,以及找不到元素時的undefined。考慮到這一點,$('.streetaddress')必須返回0個元素。修改選擇器,使其針對正確的元素來解決問題。

+0

謝謝凱文 – reds184 2013-02-11 20:12:23

相關問題