JQuery et JQuery.Valider “Impossible d'obtenir la propriété "appel" undefined ou référence null” erreur
J'ai un ASP.NET MVC 5 application à l'aide de JQuery v1.10.2 et JQuery.Valider v1.13.1 et j'obtiens l'erreur suivante dans google Chrome, lors de la validation d'un formulaire en cliquant sur "Soumettre" ou lorsqu'une saisie est validée après la perdre de vue son objectif:
et Internet Explorer aussi me donne la même erreur.
Je suis en utilisant le système de bundle pour regrouper les différents scripts et cela est maintenu dans un autre projet (qui est partagé entre les applications de rendre le code plus facile à maintenir dans un seul endroit). Mon bundles ressembler à ceci:
BundleTable.Bundles.Add(new ScriptBundle(BundleNames.JavaScript.JQuery).Include(
string.Format("~/{0}/jquery-1.10.2.js",_JavaScriptFolder""),
string.Format("~/{0}/jquery-1.10.2.min.js",_JavaScriptFolder),
string.Format("~/{0}/jquery-migrate-1.2.1.js",_JavaScriptFolder),
string.Format("~/{0}/jquery-migrate-1.2.1.min.js",_JavaScriptFolder)));
BundleTable.Bundles.Add(new ScriptBundle(BundleNames.JavaScript.JQueryValidation).Include(
string.Format("~/{0}/jquery.validate.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate.min.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate.unobtrusive.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate.unobtrusive.min.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate-vsdoc.js", _JavaScriptFolder)));
Et ils sont inclus pour les applications de vue de mise en page comme ceci:
@Scripts.Render(Ebi.Mvc.Library.Bundling.BundleNames.JavaScript.JQuery)
@Scripts.Render(Ebi.Mvc.Library.Bundling.BundleNames.JavaScript.JQueryValidation)
Cette installation fonctionnait bien lorsque JQuery v1.9.1 et JQuery.Valider v1.10.0 ont été utilisés mais j'ai eu de mise à jour de JQuery.Valider et j'ai aussi décidé de mettre à jour JQuery (j'évite 2.X à cause de IE des raisons de compatibilité), mais depuis, j'ai été coincé avec cette erreur. J'ai même essayé de changer à nouveau pour les versions d'origine qui étaient de travail OK mais bizarrement, l'erreur est toujours en cours.
J'ai regardé la réponse à cette question (ce qui semble pratiquement identique) et j'ai installé le JQuery Migrate plugin à l'aide de gestionnaire de package NuGet, et je l'ai ajouté à la JQuery bundle, mais tout ce qui semblait n'était arrêter une erreur est générée dès que une page contenant un formulaire de chargement.
Je vais aussi ajouter que, après l'erreur est levée la validation prend toujours place sur le formulaire (par exemple en ajoutant les classes de validation pour les entrées et l'affichage des erreurs de saisie).
Quelqu'un peut-il m'aider à comprendre ce qui est à l'origine de cette erreur?
unobtrusive-validation
plugin, qui est généralement utilisé pour faciliter l'initialisation de jQuery Valider au sein de l'ASP.Vous êtes à la pas censé utiliser à la fois le minifiés et de l'onu-minifiés versions de chaque script... il suffit d'utiliser l'un ou l'autre.
Merci pour les conseils sur minifiés et de l'onu-minifiés versions, je vais en prendre note. En ce qui concerne la
unobtrusive-validation
plugin, qui .fichier js est-ce à utiliser? J'ai un jquery.unobtrusive-ajax.js
et sa version minifiée, et aussi l'un de ceux énumérés dans les ensembles extrait de code dans ma question ci-dessus jquery.validate.unobtrusive.js
OriginalL'auteur Will.Harris | 2015-07-22
Vous devez vous connecter pour publier un commentaire.
Dans mon scénario, il s'avère que ce que Sparky dit sur l'utilisation de minifiés et de l'onu-minifed versions d'un même script a été fait à l'origine du problème.
Pour résoudre ce je répartis mes faisceaux en minifed et de l'onu-minifiés versions qui rend les deux types utilisables dans mon application si nécessaire.
Depuis que je fais ce que j'étais capable de mettre à jour le JQuery.Valider plugin sans l'erreur ne se produise. Je n'ai même pas eu à utiliser le JQuery Migrate plugin dans la fin.
Donc je suppose que si quelqu'un d'autre obtient cette erreur, il vaut la peine de vérifier que vous n'êtes pas le référencement à la fois compacte et onu-minifiés versions de JQuery et JQuery Valider les scripts.
La confusion peu sur ma moitié que je n'ai toujours pas de réponse, c'est que les faisceaux (codé dans ma question description) ont été configurés de cette façon pendant plus d'un an avec aucune erreur ne survienne et plusieurs applications ayant recours, jusqu'à ce que j'ai essayé la mise à jour d'un plugin...
OriginalL'auteur Will.Harris
De précision doivent être ajoutés à ces soluion parce qu'ils ne travaillent pas sur MVC4. J'ai fait face à cette situation et ont essayé ces réponses sans succes. Lorsque j'ai ajouté ces jquery-migrer les fichiers avec Nuget et ont ajouté directement la référence de ces fichiers dans la page html ou jquery bundle dans BundleConfig sans succès. Après de nombreuses heures de l'essayer, j'ai enfin compris qu'il est préférable d'utiliser les paquets dans l'en-tête d'une page donnée ou d'une même mise en page que pour servir de référence de fichiers connus dans le document html . Je viens de modifier le lien de styles et de fichiers javascript à quelque chose comme le code ci-dessous et ils ont généré le nécessaire lien de la page.
En faisant comme ça, j'ai du succès et de ne plus avoir cette erreur.
Si pas ajouté sur le dessus de jqueryval, vous ne pouvez pas effectuer la validation
OriginalL'auteur El camerounian
Que je ne suis pas en utilisant en dessous de référence il a été résolu en ajoutant:
OriginalL'auteur cracker