2016-09-21 38 views
2

我有一個文本框在mvc4應用程序如下。如何刪除mvc4文本框中的默認日期?

@Html.TextBoxFor(x=>x.dateofAction, ViewBag.filterdateTime as string, new { @id = "dateofAction", @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" }) 

我對這個文本框使用jquery壓光機。

$(document).on('focus', '.calender', function(){ 
     $(this).datepicker({ 

      dateFormat: "dd/mm/yy", 
      changeMonth: true, 
      changeYear: true, 
      showOn: 'button', 
      buttonImage: '/images/icondate.png', 
      buttonImageOnly: true 
     }) 
      }); 

這是我的模型

[DisplayName("dateofAction")] 
     [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")] 
     public DateTime dateofAction { get; set; } 

我在第一次頁面加載默認的日期1/1/0001 12:00:00 AM在文本框中顯示的是面臨的問題。其實我想顯示佔位符的價值。

我可以知道爲什麼我無法獲得佔位符值嗎?

+1

讓你屬性可爲空 - 'public DateTime? dateofAction {get;組; }'(和**不**設置'value'屬性!) –

+0

謝謝斯蒂芬。像'charm'這樣的作品 –

+0

並且刪除'$(document).on('focus','.calender',function(){'並用'$('#dateofAction')替換它。datapicker({...} );'並移除'new {@id =「dateofAction」}(它已經有了'id') –

回答

5

爲了顯示帶有佔位符的空文本框,您需要使您的屬性可以爲空。如果還想要選擇日期,則還可以使用[Required]屬性修飾該屬性。

還請注意,您的[DisplayFormat]是不必要的,並被TextBoxFor()方法忽略。你也應該使用[Display]屬性,而不是[DisplayName]你的屬性應該是

[Display(Name= "Date of Action")] 
[Required(ErrorMessage = "Please select a date")] 
public DateTime? dateofAction { get; set; } 

然後在視圖代碼應該只是

@Html.TextBoxFor(x=>x.dateofAction, new { @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" }) 

和您的日期選擇器插件應該是在DOM渲染初始化,並非每次都集中注意力

$('#dateofAction').datepicker({ 
    dateFormat: "dd/mm/yy", 
    .... 
}) 
+0

是的,這是我需要的。非常感謝 –

+0

謝謝你............ –

0

DateTime是struct和value。當你傳遞模型來查看「dateofAction」具有默認值。這種挑戰的兩種方式:

  1. 使dateofAction可爲空。
  2. 將dateofAction設置爲DateTime.Now創建模型時。
相關問題