62 votes

Erreur dans jquery.validate.js dans MVC 4 Projet avec jQuery 1.9

J'ai créé un nouveau ASP.Net MVC 4 projet à l'aide du modèle dans Visual Studio 2012. Après la mise à jour de jQuery 1.9, la fonctionnalité de login pauses. Plus précisément, je reçois le message d'erreur

0x800a138f - runtime JavaScript erreur: Impossible d'obtenir la propriété "appel" undefined ou référence null

à la ligne 1172, colonne 5 dans jquery.validate.js

Comment puis-je résoudre ce problème?

85voto

Eric J. Points 73338

Ce problème est résolu dans Plugin jQuery Validation 1.11.0 pré.

Malheureusement, il n'existe actuellement pas de version pré-construction sur NuGet, de sorte qu'il est actuellement nécessaire de télécharger jquery.validation.js directement à partir de GitHub:

jQuery.Validation 1.11 est maintenant disponible via NuGet (merci @Simon_Weaver).

Mise à JOUR

Il ressemble à général jQuery 1.9 est dans le jQuery.La Validation de la base de code, mais n'est pas encore sorti

https://github.com/jzaefferer/jquery-validation/pull/613

37voto

Stony Points 2137

Si vous installez jQuery.Migrer 1.1.1 puis il va fonctionner avec jQuery.Validation 1.11, jQuery 1.9 et 2.x.

Ainsi que faire install-package jQuery.Migrate, vous devez ajouter le code JavaScript pour BundleConfig.cs - je l'ai ajouté juste après jQuery et c'est ce que la ligne qui enregistre jQuery ressemble à ça:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
  "~/Scripts/jquery-{version}.js",           // jQuery itself
  "~/Scripts/jquery-migrate-{version}.js")); // jQuery migrate

8voto

Texellab Points 71

J'ai eu le même problème, pas de problème dans firefox, mais ie donne toujours l'erreur. Je suis à l'aide de jquery-2.0.0; Plugin jQuery Validation 1.11.1

J'ai trouvé un correctif: remplacer

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

avec

@section Scripts{
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/jqueryval")"></script>
}

2voto

user2574029 Points 11

Remplacement de la bundles chemin du script par la ligne suivante travaillé pour moi.

 <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/jqueryval")"></script>

J'ai essayé la mise à jour de jquery validation via Nuget, et également mis à jour le jquery en version 2.0, mais aucune de ces solution a fonctionné. Le seul qui a bien fonctionné sans télécharger quoi que ce soit Pré-version est la solution proposée par Texellab

0voto

Vance Points 1

Le problème sous-jacent est que certaines des méthodes qui avait été abandonné depuis jQuery 1.7 (lorsque de nouveaux, l'amélioration des méthodes ont été ajoutées) ont été retirées du 1.9. jQuery Validate a, apparemment, pas été mis à jour de sorte qu'il utilise les nouvelles méthodes à la place. J'ai trouvé que l'utilisation de jQuery Migrer d'un Plugin, qui met l'supprimé les méthodes de retour, résolu mon problème avec cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X