使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间

Posted

技术标签:

【中文标题】使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间【英文标题】:Remove time from ASP MVC @Html.TextBoxFor Control using jQuery datepicker 【发布时间】:2013-03-20 10:25:16 【问题描述】:

使用 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 

【问题讨论】:

重复***.com/questions/1328025/… 尝试了这些解决方案,但没有任何运气。查看修改。 【参考方案1】:

编辑: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" />

【讨论】:

我收到错误No overload for method 'TextBoxFor' takes 3 arguments 抱歉,错过了 MVC3。试试***.com/questions/5972536/… 如果您不想弄乱现有的标记和/或视图模型,这似乎是最敏感的方法【参考方案2】:

通过使用@Html.TextBox 而不是@Html.TextBoxFor,我能够找到一个有效的重载。

@Html.TextBox("DateTaken", Model.DateTaken.ToString("MM/dd/yyyy"), new  id = "dtkn" )

【讨论】:

【参考方案3】:

@Html.TextBoxFor(m => m.DateTaken,"0:d/M/yyyy", new id = "dtkn" )

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0:d/M/yyy")] [显示名称(“拍摄日期”)] 公共字符串 DateTaken 获取;放;

【讨论】:

以上是关于使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间的主要内容,如果未能解决你的问题,请参考以下文章

如何从 jquery datepicker 中获取选定的日期

使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间

如何从 jQuery UI datepicker 获取日期

如何将 jquery datepicker 从模板传递到 python Django 中查看?

jQuery:如何从与 datepicker 插入日期的输入字段不同的元素中激活 datepicker?

jQuery 日期选择器。我如何从 Jquery datepicker 中获取年份