2013-03-31 46 views
1

好吧我知道this question has been asked,0 and asked,and asked,但我錯過了東西,似乎無法弄清楚,因爲雖然datepicker看起來正確,當我嘗試提交日期作爲13/04/2013驗證踢,說jQueryUI DatePicker和MVC4與英國日期值

領域[到期日期]必須是日期

我有一個約會編輯模板

@model DateTime? 

@Html.TextBox("", (Model.HasValue ? 
     Model.Value.ToShortDateString() : 
     string.Empty), new { @class = "datepicker" }) 

視圖模型

[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")] 
[DisplayName("Date Due")] 
public DateTime? DueDate { get; set; } 

和jQuery

$(document).ready(function() { 
    $(function() { 
     $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' }); 
    }); 
}); 

的日期選擇器彈出,當我進入與CSS類的datepicker一個領域,我可以選擇一個日期,如2013年4月在日期選擇器13日,值顯示在文本框中,但提交失敗驗證。

我在哪裏錯過了什麼?

回答

0

我不能接受任何信貸的回答我的問題;不過這對於我工作的解決方案是在accepted answer for MVC DateTime validation - UK Date format,是

超載不顯眼的JavaScript驗證方法日期

鏈接的帖子有腳本,對我來說,只要我把它丟進工作我腳本文件。

我不知道如果這是因爲需要爲@Nicholas Butler說

jQuery驗證不理解的文化。

,或者是因爲我用[DisplayFormat(DataFormatString = "{0: dd MMM yyyy}")]讓日期顯示爲2013年4月20日,而不是20/04/2013 as pointed out

{0:DD/MM/YYYY}應該是{ 0:DD/MM/YYYY}因爲毫米表示分鐘,而不是幾個月:

所以可能是因爲日期格式之間的差異是造成我的問題

0

請問link有幫助嗎?這意味着您使用的DisplayFormatAttribute僅用於顯示日期,並且不會自動應用於設置ViewModel屬性,除非您指定ApplyFormatInEditMode。 MVCx並不是很棒,所以只是猜測。

0

驗證的問題在於jQuery Validate不理解文化。

對於日期,它只是調用javascript:new Date(value),該日期在(某些)英國日期失敗。

所以,你需要全球化添加到客戶端驗證 - 見我回答這個問題:

DateTime format according to the culture in MVC