2

以下の関数が機能すると、「プロパティ'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;
    }

}
4

1 に答える 1

1

すべての文字列にはmatchメソッドがあるため、扱っているのは文字列であってはなりません。この.val()メソッドは、要素が見つかった場合と要素が見つからなかった場合の文字列の2つの異なるもののみを返しますundefined。これを念頭に置いて、$('.streetaddress')0要素を返す必要があります。問題を修正するために正しい要素をターゲットにするようにセレクターを変更します。

于 2013-02-11T20:04:23.443 に答える