it-swarm.com.de

Die jQuery-Validierung funktioniert in IE7 + IE8 nicht

Ich versuche, das jQuery Validation -Plugin in einem Formular auf meiner Website zu verwenden. Das Formular funktioniert in FF, Chrome, Opera und Safari. Es muss noch in IE7 oder IE8 funktionieren.

Unten ist eine vereinfachte Version meines Codes, der in jedem Browser außer IE zu funktionieren scheint.

<!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: Wir wissen jetzt, dass die Verwendung von jquery (ich habe jQuery v1.6 verwendet) das Problem war. Ich habe zurück zu v1.5.2 gewechselt und geändert

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

zu:

$("form").validate ({

Alles funktioniert jetzt im IE. Vielen Dank.

37
magzalez

Ich denke, Sie müssen entweder zu einer früheren Version von jquery (1.5.2) zurückkehren oder die neuere Version von Validierungs-Plugin 1.8.0.1. verwenden

43
redsquare

Wenn Sie ein neues ASP.NET MVC 3-Projekt in Visual Studio erstellen, enthält Ihr Skriptordner standardmäßig unter anderem:

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

Eines der ersten Dinge, die Sie möglicherweise tun möchten, ist das Aktualisieren der jquery-Version auf die neueste Version, die heute die Version 1.7.1 ist.

Danach funktioniert die clientseitige Überprüfung in Internet Explorer 7 und Internet Explorer 8 nicht mehr .

Dies liegt daran, dass die jquery.validate-Version nicht mit jquery-Versionen> 1.6 kompatibel ist. Die Lösung ist einfach. Sie müssen auch Ihre Version von jquery.validate aktualisieren.

Die aktuelle Version 1.9 von Microsofts CDN oder die neueste Version von GitHub finden Sie hier:

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

Denken Sie daran, dass Sie in Microsofts CDN immer die neueste Javascript-Bibliothek finden. Die vollständige Liste der verfügbaren Bibliotheken finden Sie hier: http://www.asp.net/ajaxlibrary/cdn.ashx

Diese Informationen stammen aus meinem Blog-Beitrag über dieses Problem

16
Stian

Für das, was es wert ist, musste ich auf das neueste JQuery (1.8.2 zu diesem Zeitpunkt) und Validate (1.10) aktualisieren, um dieses Problem zu umgehen.

5
ozz

Ich hatte Probleme mit jquery.validate.js in IE7/IE8. Nach dem Debuggen bemerkte ich, dass die folgende Zeile das Problem verursachte (ln 436 in Version 1.7):

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

Ersetzen Sie diese beiden Zeilen durch etwas wie:

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

Das hat den Trick für mich getan.

4
nullable

Ich hatte das gleiche Problem in Sage CRM mit jqueryui autocomplete, das den Fehler "script3: member not found. Jquery-1.8.2.min.js, Zeile 2, Zeichen 32075" nur in IE (Version 10 Dieser Fehler wurde im Seitenmodus behoben: IE zwang die Site in den Standardmodus IE 7).

Es ist ein böser Hack, aber es funktioniert gut. Fügen Sie dies am Anfang der Seite ein. Hat mich heute Abend eine Stunde gekostet, ich hoffe, das hilft jemand anderem.

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

Ich hatte gerade dieses Problem, aber das Problem war nicht, dass ich die neueste Version von jquery brauchte - es war die neueste Version von jquery, die das Problem verursachte. Jquery 2.x unterstützt derzeit nicht IE, stellen Sie also sicher, dass Sie 1.8+ aber weniger als 2.0 verwenden.

1
kad81