37

Tôi đang cố sử dụng plugin jQuery Validation trên biểu mẫu trên trang web của mình. Biểu mẫu hoạt động trong FF, Chrome, Opera và Safari. Nó vẫn chưa hoạt động trong IE7 hoặc IE8.Xác thực jQuery không hoạt động trong IE7 + IE8

Dưới đây là một phiên bản đơn giản của mã của tôi dường như hoạt động trong mọi trình duyệt nhưng 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: Chúng tôi bây giờ biết rằng việc sử dụng jquery mới nhất, tôi đã sử dụng jQuery v1.6, là vấn đề. Tôi đã thay đổi trở lại v1.5.2 và thay đổi

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

tới:

$("form").validate ({ 

Tất cả mọi thứ đang làm việc trong IE, bây giờ. Cảm ơn.

+0

Đã di chuyển xuống 1.5.2 và xóa "var validator =" để dòng đầu tiên của tôi bắt đầu bằng $ ("biểu mẫu"). Thanks @redsquare – magzalez

+0

bản sao có thể có của [Xác thực JQuery không hoạt động trong IE8] (http://stackoverflow.com/questions/3722227/jquery-validation-doesnt-work-in-ie8) – ripper234

Trả lời

43

Tôi nghĩ rằng bạn có cần phải di chuyển trở lại một phiên bản trước của jquery (1.5.2) hoặc sử dụng các phiên bản mới hơn của validation plugin 1.8.0.1.

+0

Có cách nào để tải xuống không có nuget? –

+3

@Kieran Andrews thử repo https://github.com/jzaefferer/jquery-validation/ – redsquare

+0

Cảm ơn bạn! Tôi đã đập đầu của tôi chống lại điều này ... – Antony

16

Khi bạn tạo một dự án ASP.NET MVC 3 mới trong Visual studio, thư mục script của bạn sẽ theo mặc định chứa số những người khác:

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

Một trong những điều đầu tiên bạn có thể muốn làm là cập nhật phiên bản jquery lên phiên bản mới nhất, hôm nay là phiên bản 1.7.1

Sau khi thực hiện việc này, việc xác thực của khách hàng của bạn sẽ ngừng hoạt động trong Internet Explorer 7 và Internet Explorer 8.

Điều này là do phiên bản jquery.validate là không tương thích với các phiên bản jquery> 1.6. Các giải pháp rất đơn giản, bạn cần phải cập nhật phiên bản jquery.validate của mình.

Bạn có thể tìm thấy phiên bản hiện tại 1,9 từ CDN của Microsoft hoặc phiên bản mới nhất từ ​​GitHub ở đây:

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

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

Hãy nhớ rằng bạn luôn có thể tìm thấy thư viện javascript mới nhất trong Microsofts CDN, xem danh sách đầy đủ của librar có sẵn ies đây: http://www.asp.net/ajaxlibrary/cdn.ashx

Thông tin này là từ blog post của tôi về vấn đề này

+1

Cảm ơn phản hồi của bạn, điều này làm việc cho tôi, cấu hình của tôi: jQuery 1.9.1 và tôi phải hạ cấp jQuery Validate từ 1.15 xuống 1.9 – RokumDev

4

tôi có vấn đề với jquery.validate.js trong IE7/IE8. Sau khi gỡ lỗi tôi nhận thấy dòng sau đã gây ra vấn đề (ln 436 trong phiên bản 1.7):

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

Thay thế hai dòng này với một cái gì đó như:

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

đó đã làm các trick cho tôi.

+0

Cảm ơn bạn rất nhiều vì điều này! Nó làm việc như một say mê. –

5

Đối với những gì đáng giá, tôi phải nâng cấp lên JQuery mới nhất (1.8.2 tại thời điểm này) và Xác thực (1.10) để khắc phục sự cố này.

+1

Cảm ơn một triệu !! – michele

+0

@michele bạn được chào đón :-) – ozz

1

Tôi vừa gặp sự cố này nhưng vấn đề không phải là tôi cần phiên bản mới nhất của jquery - đó là phiên bản mới nhất của jquery gây ra sự cố. Jquery 2.x không hỗ trợ IE tại thời điểm này, vì vậy hãy đảm bảo bạn đang sử dụng 1.8+ nhưng nhỏ hơn 2.0.

+0

jQuery 2.0 hỗ trợ IE nhưng họ đã bỏ tất cả mã phụ chỉ được sử dụng bởi các phiên bản lỗi thời (hỏng) để làm cho jQuery chạy nhanh hơn cho phần còn lại của chúng tôi. Để báo giá http://jquery.com/download: "jQuery 2.x có cùng API với jQuery 1.x, nhưng không hỗ trợ Internet Explorer 6, 7 hoặc 8." – EpicVoyage

1

Tôi đã có cùng một vấn đề trên Sage CRM sử dụng jqueryui tự động hoàn thành nhận lỗi "script3: thành viên không tìm thấy. Jquery-1.8.2.min.js, dòng 2 ký tự 32075" chỉ trong IE (phiên bản 10). Lỗi này đã được gắn lên trong chế độ trang: IE đã buộc trang web vào chế độ chuẩn 7 của IE.

Nỗ lực khó chịu của nó, nhưng nó hoạt động tốt. Đặt điều này ở đầu trang. Chi phí cho tôi một giờ đêm nay rối tung về điều này, hy vọng điều này sẽ giúp người khác.

<!DOCTYPE HTML> 
<meta http-equiv="x-ua-compatible" content="IE=Edge"> 
Các vấn đề liên quan