ここで問題が発生します。外部の.jsファイルでRegExpを検証します
私は、AJAXを使用するサイトを持っています。このサイトでは、プライマリホームページに、サイトのすべてのページで必要なコアスクリプトを含むhome.jsファイルが読み込まれます。ユーザーは(AJAX経由)ページになると
var datePattern = new RegExp("^([0][1-9]|[1][0-2])\/([0][1-9]|[1-2][0-9]|[3][0-1])\/([12][0-9][0-9][0-9])$");
、適切なフォーム検証script.jsファイルが最初にロードされる(日付を検証するために、次のvalが含まれています。これらのコアのスクリプトの一つは、次の正規表現であります)日付要素の値は、正しく予測される日付の値を表示します。
var val=elem[i].value;
if (!datePattern.test(val)) {
elem[i].style.background="#FF0000";
errno++;
}
私はバリ、すべてを通してスクリプトとHTMLの両方がOKであるように思わ合格しています。
すべてがFFで正常に動作します。しかし、IEで。 datePatternが定義されていないというメッセージが表示されます。 home.jsファイルのdatePattern宣言は、他のjsファイルに対してグローバルに使用できるように変更する必要がありますか?
ありがとうございます!
既に日付検証を行っているJavascriptライブラリを使用していませんか? – fge
関数にアクセスしようとしているときにファイルが読み込まれない可能性があります。 IEはsetTimeoutまたはdeferを好きです – mplungjan
いいえ、私はJSライブラリを使用していませんが、調べる価値があります。ロードされているファイルについては、実際にロードされています。 home.jsファイルのスクリプトは完璧に動作し、$ datePattern.test関数を含むスクリプトはうまくいきます... datePatternをUndefinedとして登録するだけです。 (私がdatePatternをステップオーバーすると、うまく動作する前と後に他の検証ステップがあります) – Max