2012-04-06 21 views
2

Wir arbeiten an einer .NET MVC Mobile Site. Ich verstehe, dass auf dem iPhone, mobile Safari eine Datepicker für das folgende Eingabefeld angezeigt wird:HTML5 Mobile Safari DatePicker - Initialwert

<input type="date"/> 

Wir haben einen Standard-Datumsauswahl Helfer, welche Optionen Datumsauswahl für verschiedene Plattformen ausspuckt. In diesem Fall erkennen wir mobile Safari und dann ein Eingabefeld schreiben, die unser Modell gebunden ist:

<input name="StartDate" value="2008/12/21" type="date"/> 

Das Problem ist, dass der Wertebereich nicht auf Last dargestellt ist. Wir können neue Werte eingeben und sie in unserer Datenbank speichern. Aber wenn wir die Seite neu laden, erscheinen diese Werte nicht in den Feldern. Wenn wir erneut speichern, werden alle Werte in der Datenbank auf null zurückgesetzt.

Ich bemerkte, dass wenn Sie ein Datum mit den Rädern auf dem iPhone wählen, der Wert des Textfelds im Format "6. April 2012" endet, wo ich erwarte, dass es 2012/04 zeigt/06 oder 04/06/2012.

Meine Vermutung ist, dass die mobile Safari ein anderes Attribut des Feldes anzeigt und dann das Wertattribut entsprechend hinter den Kulissen festlegt.

Weiß jemand, was hier vor sich geht? Vielen Dank!

+0

Verwenden Sie Modernizr, um die Funktionen zu ermitteln. Siehe http://blogs.msdn.com/b/rickandy/archive/2011/08/31/using-the-html5-and-jquery-ui-popup-calendar-with-asp-net-mvc.aspx und http : //www.asp.net/mvc/tutorials/javascript/using-the-html5-and-jquery-ui-datepicker-popup-calendar-with-aspnet-mvc/using-the-html5-and-jquery-ui -datepicker-popup-kalender-mit-aspnet-mvc-part-1 – RickAndMSFT

Antwort

4

AFAIK das Datum muss RFC3339 konform sein. Haben Sie versucht 2008-12-21 (gestrichelt statt Schrägstriche)?

<input type="date" value"yyyy-MM-dd" /> 
+0

MVC ließ mich durch einige Reifen springen, um sogar so auszugeben, wie ich wollte, aber das war in der Tat das Problem. Vielen Dank! – Adam