J'ai une situation où j'ai des problèmes avec la validation du côté du client d'un champ DateTime. Lorsque j'essaie de soumettre, il ne me dis pas que la date est invalide (27/7/2013). Mais si j'avive la date au format américain, cela fonctionne (07/27/2013).
Mon modèle de vue est le suivant, P>
<globalization culture="en-AU" uiCulture="en-AU" />
4 Réponses :
Essayez avec ceci,
modèle strong> p>
même résultat .. ne fonctionne pas ... sûrement, il doit être quelque chose de pas si compliqué de changer la culture
Cela ne répond pas à l'erreur dans la validation des clients, qui est le problème
Lorsque vous utilisez la validation de JQuery pour les dates, vous découvrirez qu'il ne fonctionne pas bien pour les dates utilisant Chrome. Cela se produit lorsque vous utilisez une locale non américaine. p>
La solution a présenté à Fixation Validation de date non-américaine JQuery pour Chrome P>
Quelqu'un d'autre a trié cela pour moi, c'était tout à faire avec la validation du côté client JQuery. Merci encore asymptoticfault .. vous rock .. MVC 4 Date Culture Problème de la culture?
Voici les informations de ce lien que je Utilisé ... p>
Le problème est la validation de JQuery qui ne comptait pas la culture lors de l'analyse d'une date. Si vous éteignez la validation du côté du client, la date est analysée simplement sur le serveur qui est conscient de la culture. P>
Le correctif consiste à remplacer la validation de JQuery à la date et à inclure un plugin supplémentaire de globalisation de jQuery. Vous pouvez trouver le plug-in ici . Vous pouvez également télécharger facilement le plugin à l'aide du gestionnaire de packages Nuget également. Je viens d'ouvrir le gestionnaire de paquets, sélectionné l'onglet en ligne à gauche et dactylographié "globalize" dans la recherche et c'était le premier résultat. Une fois que vous l'avez installé, j'ai inclus ces deux fichiers: p> Vous pouvez les inclure directement à l'aide d'une étiquette de script ou de les placer dans un paquet, peut-être avec les autres fichiers de validation de jQuery . P> Une fois que vous aurez d'autres que vous aurez besoin d'ajouter le script suivant pour remplacer la validation de JQuery à la date: P> <script type="text/javascript">
$(function () {
$.validator.methods.date = function (value, element) {
Globalize.culture("en-AU");
// you can alternatively pass the culture to parseDate instead of
// setting the culture above, like so:
// parseDate(value, null, "en-AU")
return this.optional(element) || Globalize.parseDate(value) !== null;
}
});
</script>
Serait bien si vous avez également fourni le gist de la réponse ici si le lien meurt.
Cela fonctionnait bien, mais quand j'ai téléchargé Globalizejs avec Nuget ( Nuget.org/packages/jQuery-globalize ) Le fichier "globalize.culture.en-au.js" n'était pas là, mais n'est pas nécessaire. Cela fonctionnait bien avec "globalize.js"
Les problèmes de validation des clients peuvent survenir en raison de la bogue MVC (même dans MVC 5) dans jquery.validate.unobtrivant.min.js em> qui n'accepte pas le format Date / DateTime en quelque sorte < / fort>. Malheureusement, vous devez le résoudre manuellement. Vous devez inclure avant: p> Vous pouvez installer moment.js : p> et ensuite vous pouvez enfin ajouter un correctif pour le format de date d'analyseur: p>
Merci, n'hésitez pas à utiliser n'importe quel format de date que vous voulez (moment.js peut gérer tout ce que je suppose). :)
J'espère que vous le trouverez utile a > b>
désolé je ne l'ai pas trouvé utile, je n'utilise aucun validateur fluide
Jetez un coup d'œil à Stackoverflow.com/Questtions/11272851/... , la réponse acceptée doit résoudre le problème.
J'ai essayé ça, ça n'a pas fonctionné non plus. J'ai créé un nouveau projet MVC 4 et ajouté une date de date à la page d'enregistrement. Toujours le même problème. Sûrement quelque chose comme ça devrait être facile à faire ouais? Voici mon projet dl.dropboxusercontent.com/87611366/mvcapplication2.zip