私のウェブサイトのフォームで 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で機能しています。ありがとう。
以前のバージョンのjquery(1.5.2)に戻すか、新しいバージョンの validation plugin 1.8.0.1。 を使用する必要があると思います
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
この情報は、私の ブログ投稿 この問題についてのものです
この問題を回避するために、価値のあるものとして、最新のJQuery(現時点では1.8.2)およびValidate(1.10)にアップグレードする必要がありました。
IE7/IE8でjquery.validate.jsに問題がありました。デバッグ後、次の行が問題の原因であることに気付きました(バージョン1.7のln 436)。
return $([]).add(this.currentForm.elements)
.filter(":input")
これらの2行を次のように置き換えます。
return $(':input', this.currentForm)
それは私のためのトリックをしました。
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">
私はちょうどこの問題を抱えていましたが、問題はjqueryの最新バージョンが必要ということではありませんでした-問題を引き起こしたjqueryの最新バージョンでした。 Jquery 2.xは、現時点ではIEをサポートしていません。そのため、1.8以上2.0未満を使用していることを確認してください。