Comment corriger les paramètres régionaux pour le datepicker de jQuery de sorte qu'il fonctionne dans Firefox et IE7?
Je suis à l'aide de jQuery' s datepicker et asp.net MVC4. Le datepicker fonctionne dans Firefox, mais dans IE7, je reçois le message par le biais de la asp.net's la validation que le champ n'est pas une date.
C'est le code pour le datepicker
if (!Modernizr.inputtypes.date) {
$(function() {
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
$(".datefield").datepicker();
});
}
C'est mon réglage de la mondialisation dans le Web.config
<globalization uiCulture="en-GB" culture="en-GB" />
E. g. dans Firefox, la date est affichée en tant que "19/03/2012" chaîne et accepté par le asp.net's la validation de l'installation (côté client et serveur). Dans IE7 la même chaîne de date n'est pas acceptée sur le client. Si je le change pour "03/19/2012" le client accepte la date, mais ensuite, le serveur renvoie une exception - "InvalidOperationException. Nullable objet doit avoir une valeur."
Mon viewModel utilise un null-mesure DateTime que je lance à un non-nulle-mesure DateTime dans les contrôleurs d'action post. Cela fonctionne dans Firefox, mais dans IE7 la valeur de la date à partir de ce dernier est nul. Quel est le problème?
- Darin Dimitrov a le droit de réponse, mais aussi de regarder mon tutoriel asp.net/mvc/tutorials/javascript/...
- Merci, j'ai déjà utilisé votre bon tutoriel pour venir jusqu'ici avec le datepicker. Mais il ne s'occupe pas de questions relatives à la mondialisation.
Vous devez vous connecter pour publier un commentaire.
La ligne suivante ne fait rien:
si vous n'incluez pas le fichier de langue correspondant qui n'est pas inclus par défaut dans le ASP.NET MVC 4 modèle.
Vous pouvez essayer de définir le format explicitement:
Mais cela ne concerne que la façon dont la date doit être au format après l'avoir sélectionné dans le datepicker. Il n'a rien à voir avec la validation.
Du côté client, la validation est effectuée par le
jquery.validate
plugin qui à son tour utilise le navigateur configuré de la culture (ce qui pourrait expliquer les différences que vous observez entre FF et IE, par exemple, on pourrait être configuré pour utiliser le fr-fr et l'autre en-US) ou ISO dates.Vous pourriez remplacer cette coutume de validation et de rendre l'utilisation de votre format personnalisé pour veiller à ce que le travail de la croix-navigateur:
script
tag.<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")" type="text/javascript"></script> <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/i18n/js")" type="text/javascript"></script></script> <script src="@Url.Content("~/Scripts/jquery.ui.datepicker.min.js")" type="text/javascript"></script>
i18n
lien est rompu.Jquery fichiers de localisation sont disponibles sur :
http://nuget.org/packages/jQuery.UI.i18n
exécutez simplement :
Install-Package jQuery.L'INTERFACE utilisateur.i18n et ajouter un script référence à "Scripts/jquery-ui-i18n.js"
à partir de la console du gestionnaire de package, puis cela va fonctionner:
$.datepicker.setDefaults($.datepicker.regional['fr']);