2

当下面的函数工作时,我得到“无法获取属性'match'的值:对象为空或未定义”。有趣的部分是它在另一个页面上完美运行。有任何想法吗?

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;
    }

}
4

1 回答 1

1

所有字符串都有一个match方法,因此您正在处理的内容不能是字符串。该.val()方法只返回两种不同的东西:找到元素时的字符串,以及undefined未找到元素时的字符串。考虑到这一点,$('.streetaddress')必须返回 0 个元素。修改选择器,使其针对正确的元素来解决问题。

于 2013-02-11T20:04:23.443 回答