37

我试图在我的网站上使用表格上的jQuery Validation插件。该表单适用于FF,Chrome,Opera和Safari。它尚未在IE7或IE8中工作。jQuery验证不能在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浏览器,现在。谢谢。

+0

向下移动到1.5.2并删除了“var validator =”,以便我的第一行以$(“form”)。validate开头。谢谢@redsquare – magzalez 2011-05-10 13:03:31

+0

可能重复的[JQuery验证在IE8中不起作用](http://stackoverflow.com/questions/3722227/jquery-validation-doesnt-work-in-ie8) – ripper234 2012-02-06 10:13:48

回答

43

我认为你要么需要当您在Visual Studio中新的ASP.NET MVC 3项目回迁的jQuery(1.5.2)的早期版本或使用的validation plugin 1.8.0.1.

+0

有没有办法可以下载这个没有nuget? – 2011-05-12 01:37:22

+3

@Kieran Andrews尝试回购https://github.com/jzaefferer/jquery-validation/ – redsquare 2011-05-12 09:24:16

+0

谢谢!我正在猛撞我的头... – Antony 2011-06-21 04:08:11

16

较新的版本,你的脚本文件夹在默认情况下在其他包含:

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版本> 1.6不兼容。解决方案很简单,您还需要更新jquery.validate的版本。

您可以从微软的CDN当前版本1.9或从GitHub这里获取最新版本:

微软的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库,请参阅可用库的完整列表IES这里:http://www.asp.net/ajaxlibrary/cdn.ashx

这个信息是从我blog post这个问题

+1

感谢您的回应,这适用于我,我的配置: jQuery 1.9.1和我必须将jQuery Validate从1.15降级到1.9 – RokumDev 2017-01-31 15:55:56

4

我曾与IE7/IE8 jquery.validate.js问题。调试后,我注意到下面一行是导致该问题(LN 436版本1.7):

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

该诀窍对我来说:

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

这两条线的东西,如更换。

+0

非常感谢!它像一个魅力。 – 2012-09-14 15:53:13

5

对于它的价值,我不得不升级到最新的JQuery(目前1.8.2)和验证(1.10)来解决这个问题。

+1

非常感谢! – michele 2014-02-13 12:52:11

+0

@michele欢迎:-) – ozz 2014-02-13 13:14:30

1

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

+0

jQuery 2.0支持IE浏览器,但他们已经放弃了所有额外的代码,只有过时的(破碎)版本才能使jQuery运行得更快。引用http://jquery.com/download:“jQuery 2.x与jQuery 1.x具有相同的API,但不支持Internet Explorer 6,7或8”。 – EpicVoyage 2014-01-14 20:22:18

1

我在使用jqueryui自动完成获取错误“脚本3:成员未找到。jquery-1.8.2.min.js,第2行字符32075”仅在IE(版本10)中使用sage CRM时出现同样的问题。这个错误与页面模式有关:IE强制网站进入IE 7标准模式。

它是一个讨厌的黑客,但它运作良好。把它放在页面的开头。我今晚花了一个小时搞砸了这个,希望这可以帮助别人。

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