web-dev-qa-db-ja.com

IE7 + IE8でjQuery検証が機能しない

私のウェブサイトのフォームで jQuery Validation プラグインを使用しようとしています。フォームはFF、Chrome、OperaおよびSafariで動作します。IE7またはIE8ではまだ動作していません。

以下は、IEを除くすべてのブラウザーで動作するように思われる私のコードの簡易バージョンです。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<title>Form</title>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
       var validator = $("form").validate ({
       rules: {
                first_name: "required"
              },
       messages: {
                first_name: "Enter your firstname"
                 }
       });
    });
</script>

</head>

<body>

<form method="post">
    <label for="first_name" class="hide">First Name</label> 
    <input type="text" name="first_name" value="" id="first_name" class="required" />
    <button type="submit" id="submit" name="submit">Submit</button>
</form>

</body>

</html>

Edit:jQuery v1.6を使用していたjqueryの最新版を使用することが問題であることがわかりました。 v1.5.2に戻って変更しました

var validator = $("form").validate ({

に:

$("form").validate ({

現在、すべてがIEで機能しています。ありがとう。

37
magzalez

以前のバージョンのjquery(1.5.2)に戻すか、新しいバージョンの validation plugin 1.8.0.1。 を使用する必要があると思います

43
redsquare

Visual Studioで新しいASP.NET MVC 3プロジェクトを作成すると、スクリプトフォルダーにはデフォルトで以下が含まれます。

jquery-1.5.1.min.js 
jquery.validate.min.js (which is version 1.8.0)

最初にしたいことの1つは、jqueryバージョンを最新バージョンに更新することです。最新バージョンは、バージョン1.7.1です。

これを行った後、クライアント側の検証はInternet Explorer 7およびInternet Explorer 8で機能しなくなります。

これは、jquery.validateバージョンがjqueryバージョン> 1.6と互換性がないためです。ソリューションは簡単です。jquery.validateのバージョンも更新する必要があります。

現在のバージョン1.9は、MicrosoftのCDNから、または最新バージョンはGitHubから入手できます。

Microsoft Ajax CDN: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js

GitHub Jquery検証: https://github.com/jzaefferer/jquery-validation/downloads

Microsofts CDNで常に最新のjavascriptライブラリを見つけることができることを忘れないでください。利用可能なライブラリの完全なリストは、こちらをご覧ください。 http://www.asp.net/ajaxlibrary/cdn.ashx

この情報は、私の ブログ投稿 この問題についてのものです

16
Stian

この問題を回避するために、価値のあるものとして、最新のJQuery(現時点では1.8.2)およびValidate(1.10)にアップグレードする必要がありました。

5
ozz

IE7/IE8でjquery.validate.jsに問題がありました。デバッグ後、次の行が問題の原因であることに気付きました(バージョン1.7のln 436)。

return $([]).add(this.currentForm.elements)
            .filter(":input")

これらの2行を次のように置き換えます。

return $(':input', this.currentForm)

それは私のためのトリックをしました。

4
nullable

Sage CRMで同じ問題が発生しました。jqueryuiオートコンプリートエラー「script3:member not found。jquery-1.8.2.min.js、line 2 character 32075」のみIE(バージョン10 )。このエラーはページモードで拘束されていました:IEはサイトをIE 7標準モードに強制していました。

その厄介なハックですが、うまく機能します。これをページの先頭に置きます。今夜はこれをいじって1時間かかります。これが誰かの助けになることを願っています。

<!DOCTYPE HTML>
<meta http-equiv="x-ua-compatible" content="IE=Edge">
1
MagicalArmchair

私はちょうどこの問題を抱えていましたが、問題はjqueryの最新バージョンが必要ということではありませんでした-問題を引き起こしたjqueryの最新バージョンでした。 Jquery 2.xは、現時点ではIEをサポートしていません。そのため、1.8以上2.0未満を使用していることを確認してください。

1
kad81