当下面的函数工作时,我收到“无法获取属性‘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;
}
}
最佳答案
所有字符串都有一个 match
方法,因此您处理的一定不是字符串。 .val()
方法仅返回两个不同的内容:找到元素时返回字符串,未找到元素时返回 undefined
。考虑到这一点,$('.streetaddress')
必须返回 0 个元素。修改选择器,使其定位正确的元素来解决问题。
关于jquery - 无法获取属性值 'match' : object is null or undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819714/