2013-02-11 56 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

相关问题