【问题标题】:Unable to get value of the property 'match': object is null or undefined无法获取属性“匹配”的值:对象为空或未定义
【发布时间】:2013-02-11 19:50:32
【问题描述】:

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

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

}

【问题讨论】:

  • $('.streetaddress').val() 很可能由于未找到任何元素而返回 undefined。通过console.log($('.streetaddress').val())console.log($('.streetaddress').length) 确认
  • 成功了。谢谢凯文!

标签: jquery regex validation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 2013-04-24
    • 1970-01-01
    • 2023-03-25
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多