2013-10-19 261 views
4

我有一個使用JQuery Mobile的MVC 4網站。我正在使用帶有EditorFor的模型來呈現日期編輯器。在MVC我有這樣的:JQuery Mobile日期選取器未在Chrome中顯示日期

@Html.EditorFor(Function(model) model.ActionDate) 

模型屬性定義爲:

<Required> 
<RegularExpression("\d{2}/\d{2}/\d{4}", ErrorMessage:="Please enter a date in the format of MM/DD/YY")> 
<DataType(DataType.Date)> 
<DisplayFormat(ApplyFormatInEditMode:=True, DataFormatString:="MM/dd/yyyy")> 
<Display(Name:="Action Date")> 
Public Property ActionDate As Date 

它使得HTML與價值:

<input type="date" ... value="04/24/2013" /> 

但是顯示給用戶的是這樣的:

Date Picker with Date not Showing

日期對用戶不可見,並且4/24/2013不是Chrome日期選擇器的默認值。我如何獲得chrome來實際顯示日期?

謝謝。

+0

Chrome瀏覽器正在爲日期字段*進行各種「智能」編輯,這些日期字段正在推動我們堅持*。我的解決方案(下文)只是簡單地將字段類型從'date'改爲'text'。 –

回答

2

根據the W3C,傳遞給<input type="date">元素的值應爲RFC3339格式。這是ISO8601的特定配置文件。

換句話說,您需要傳遞yyyy-MM-dd格式的值。

1

只是碰到這個完全相同的問題。

我的解決辦法是通過改變類型,當我連接到日期選擇器文本,以避免type="date"問題:

$('#Date').removeAttr('type').attr('type', 'text').datepicker(); 

如果你不使用jQueryUI的,只是下降的日期選擇器的一部分。

正如我還需要給力的默認日期格式(再次感謝Chrome瀏覽器)它是:

$('#Date').removeAttr('type').attr('type', 'text').datepicker({ dateFormat: 'dd/mm/yy' }); 

Chrome瀏覽器正在定期與jQueryUI的問題咬我們,已經從我們最喜歡的dev的瀏覽器了我們最麻煩的(對於兼容性問題)。

+0

謝謝,這完全幫助了我。我仍然困惑爲什麼Darin Dimitrov的解決方案不適合我。在這裏檢查http://stackoverflow.com/questions/12633471/mvc4-datatype-date-editorfor-wont-display-date-value-in-chrome-fine-in-ie – jomsk1e

+0

@ jomsk1e:似乎是Chrome的一個問題和jQueryUI datepicker,比任何MVC的問題更多。仍在尋找*正確的*解決方案,但這可以避免Chrome太聰明(現在)。 –

相關問題