如何在使用jQuery .datepicker()
时阻止显示时间?以下是两个属性(采用日期和到期日期)的模型部分
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
[DisplayName("Expiration Date")]
public string ExpirationDate { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
[DisplayName("Date Taken")]
public string DateTaken { get; set; }
使用我正在处理的视图上的@Html.EditorFor
控件可以正常工作。但是,当我从中改变控制时:
@Html.EditorFor(model => model.DateTaken)
到此:
@Html.TextBoxFor(m => m.DateTaken, new { id = "dtkn" })
为了使其正常工作(标记哪个控件应用了datepicker
):
<script>
$(function () {
$("#dtkn").datepicker('setDate');
$("#exp").datepicker('setDate');
});
$.datepicker.setDefaults({
buttonImageOnly: true,
buttonImage: '<%=Url.Content("~/Content/images/magnify.gif") %>',
defaultDate: -1,
gotoCurrent: true,
prevText: "<< Prev",
nextText: "Next >>"
});
</script>
突然间,时间开始出现了。有什么建议?
编辑
我尝试过以下格式,但没有一种可以使用:
$("#dtkn").datepicker({ dateFormat: 'dd-mm-yy' }).val();
$("#dtkn").datepicker({ dateFormat: 'yy-mm-dd' });
$("#dtkn").datepicker('getDate').format('yyyyMMdd');
和此:
$("#dtkn").datepicker('getDate').datepicker('dd/mm/yy');
$('#dtkn').datepicker('option', { dateFormat: 'd MM y' });
以下是我看到Chrome调试控制台的错误:
Uncaught TypeError: Cannot call method 'datepicker' of null
答案 0 :(得分:15)
编辑:MVC4用户可以使用此
你想要这个重载
@Html.TextBoxFor(m => m.DateTaken, "{0:MM/dd/yyyy}", new { id="dtkn" })
如果你愿意手动放弃助手
<input type="text" value="@Model.DateTaken.ToString("MM/dd/yyyy")" id="dtkn" />
答案 1 :(得分:3)
使用@Html.TextBox
而不是@Html.TextBoxFor
我能找到一个有效的重载。
@Html.TextBox("DateTaken", Model.DateTaken.ToString("MM/dd/yyyy"), new { id = "dtkn" })
答案 2 :(得分:0)
@ Html.TextBoxFor(m =&gt; m.DateTaken,&#34; {0:d / M / yyyy}&#34;,new {id =&#34; dtkn&#34;})
[DisplayFormat(ApplyFormatInEditMode = true,DataFormatString =&#34; {0:d / M / yyy}&#34;)]
[DisplayName(&#34;拍摄日期&#34;)]
public string DateTaken {get;组; }