jQuery验证无法在IE7 + IE8中运行

时间:2011-05-09 20:48:48

标签: jquery internet-explorer internet-explorer-8 internet-explorer-7 jquery-validate

我正在尝试在我网站上的表单上使用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>

编辑:我们现在知道使用jquery最新,我使用的是jQuery v1.6,是个问题。我改回到v1.5.2并改变了

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

为:

$("form").validate ({

现在一切都在IE中运行。感谢。

6 个答案:

答案 0 :(得分:43)

我认为您需要回到早期版本的jquery(1.5.2)或使用较新版本的validation plugin 1.8.0.1.

答案 1 :(得分:16)

在Visual Studio中创建新的ASP.NET MVC 3项目时,默认情况下您的脚本文件夹将包含:

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

您可能要做的第一件事就是将jquery版本更新到最新版本,现在版本为 1.7.1

执行此操作后,您的客户端验证将停止在Internet Explorer 7和Internet Explorer 8中工作

这是因为jquery.validate版本与jquery版本不兼容&gt; 1.6 即可。解决方案很简单,您还需要更新您的jquery.validate版本。

您可以在此处找到Microsoft的CDN当前版本1.9或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

此信息来自我blog post关于此问题的信息

答案 2 :(得分:5)

为了它的价值,我不得不升级到最新的JQuery(此时为1.8.2)和Validate(1.10)来解决这个问题。

答案 3 :(得分:4)

我在IE7 / IE8中遇到了jquery.validate.js的问题。调试后我注意到以下行引起了问题(版本1.7中的ln 436):

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

用以下内容替换这两行:

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

这对我有用。

答案 4 :(得分:1)

我刚刚遇到这个问题,但问题不在于我需要最新版本的jquery - 这是导致问题的最新版本的jquery。 Jquery 2.x目前不支持IE,因此请确保使用1.8+但小于2.0。

答案 5 :(得分:1)

我在Sage CRM上遇到了同样的问题,使用了jqueryui autocomplete获取错误&#34; script3:找不到成员。 jquery-1.8.2.min.js,第2行,第32075字符&#34;仅在IE(版本10)中。此错误与页面模式有关:IE正在强制网站进入IE 7标准模式。

这是一个讨厌的黑客,但它运作良好。把它放在页面的开头。今晚我花了一个小时搞乱这个,希望这有助于其他人。

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