2010-10-05 6 views
0

J'utilise MVC2 et j'ai inclus le sélecteur Jquery DateTime. Pour une raison quelconque, il n'utilise pas les paramètres de format par défaut lors du chargement des pages.JQuery DataPicker ne prend pas le format par défaut dans MVC2

Le modèle transmet une date et j'ai défini le format sur 'jj/mm/aaaa' car je ne veux pas que l'heure soit affichée. Le fichier html.editor auquel le programme datepicker est attaché, apparaît dans le format standard 'mm/jj/aaaa hh: mm: ss', par conséquent la validation prend la forme d'une date invalide si la valeur du modèle est '15 octobre 2010' , parce que le format standard se plaint qu'il n'y a pas de "15ème" mois.

code de la DatePicker est ...

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/mm/yyyy") : 
DateTime.Today.ToString("dd/mm/yyyy")), new { @class = "date" }) %> 

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $("#datepicker").datepicker(
     { 
      dateFormat: 'dd/mm/yy', 
      defaultDate: new Date(), 
      minDate: new Date() 

     }); 
    }); 
</script> 

appelle le code Datepicker ...

<div> 
    <%=Html.LabelFor(Model => Model.StartDate)%> 
    <%=Html.EditorFor(Model => Model.StartDate, new { @class = "date" }) %> 
    <%=Html.ValidationMessageFor(Model => Model.StartDate, "*")%> 
</div> 

Toutes les idées?

Répondre

0

Il semble que le problème est en fait la Html.TextBox plutôt que la JQuery réelle ...

Cette ligne semble être le problème,

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/MMM/yyyy") : 
DateTime.Today.ToString("dd/MMM/yyyy")), new { @class = "date" })%> 

je briserai la ligne comme suit pour vérifier les différents éléments fonctionnent correctement, et ils sont ...

<div><%= Model.HasValue %></div> 
<div><%= Model.Value.Date.ToString("dd/MM/yyyy") %></div> 
<div><%= DateTime.Today.ToString("dd/MM/yyyy")%></div> 

Alors, tout simplement - cette ligne dans un modèle provoque la mise en forme de date à être ignorée ... tout Sugge stions?

<div><%= Html.TextBox("", Model.Value.Date.ToString("dd/MM/yyyy"))%></div> 
+0

La question semble être la noms de propriétés sur les modèles de vue, l'écran 1 a un viewmodel avec la propriété A, l'écran 2 a un nouveau viewmodel rempli avec les données du viewmodel de l'écran 1 (comme une version réduite de l'écran 1), mais sa propriété est le même nom propertyA), quelle que soit la raison pour laquelle MVC se bat avec quelle propriété est ce qui, pour surmonter le problème, je viens de changer le nom sur la propriété de l'écran 2 à quelque chose d'autre :) – TChamberlainGE

0

Si vous définissez l'ID de la zone de texte correctement, je peux voir que vous avez une classe "date" mais pas l'ID.

vous pouvez aussi avoir besoin des fichiers de localisation pour le datepicker disponible à Google

Je ne peux toujours pas voir dans votre javascript où le sélecteur:

$("#datepicker") 

est associée à votre zone de texte. Le sélecteur ne doit-il pas être

$('.date') 

Peut-être qu'il me manque quelque chose.

+0

Merci pour votre réponse, mais le « DatePicker est un modèle, de sorte que le nom est repris. – TChamberlainGE

+0

je rétréci la question, peut-être quelqu'un peut aider à ce ?? – TChamberlainGE

Questions connexes