javascript - 设置输入类型=日期

标签 javascript asp.net-mvc razor input

非常感谢您的宝贵时间

我的问题是如何设置日期类型的值输入?

@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control", @type = "date" } })

它出现在 Run 之后

<input class="form-control text-box single-line" data-val="true" data-val-date="The field Date must be a date." data-val-required="The Date field is required." id="StartDate" name="StartDate" type="date" value="">

我用这种方式编写了一些代码

$(document).ready(function () {
    debugger;
    var date = $('#StartDate').val();
    var dt = new Date(date);
    var day = parseInt(dt.getDate());
    var month = parseInt(dt.getMonth() + 1);
    var year = parseInt(dt.getFullYear());

    if (day < 10) { day = '0' + day }
    if (month < 10) { month = '0' + month }
    var setDate = year + '-' + month + '-' + day;

    $('#StartDate').val(setDate);
});

当程序运行时,我看到调试器屏幕上的值为 string.empty

var date = "";

我还尝试再次删除格式错误的下部。

var dt = new Date(date);

但我没有工作。 如果有人知道这个问题的答案 我真的需要帮助 终于看到数据了,但是 由于格式不同,值未显示。 此所需格式(yyyy-MM-dd)

谢谢大家。

最佳答案

您的脚本是不必要的,因为属性 StartDate 是一个可为空的 DateTime? 并且没有值(您的 html 有 value="" ) 那么 var dt = new Date(date); 将返回 Invalid date 因为 var date = $('#StartDate').val(); code> 返回 null 并且脚本失败。

例如,在将模型传递给 View 之前,您需要在 Controller 中设置 StartDate 的值

var model = new MyModel() { StartDate = DateTime.Today };
return View(model);

这将在输入中显示今天的日期。

为了显示所需的格式,可以添加DisplayFormatAttribute

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime? StartDate { get; set; }

请注意,添加 DataTypeAttribute 意味着您可以在 EditorFor() 方法中省略 type="date",因为它将由方法

或者,您可以省略这两个属性并使用

@Html.TextBoxFor(m => m.StartDate, "{0:yyyy-MM-dd}", new { @class = "form-control", type = "date" }})

关于javascript - 设置输入类型=日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36691841/

相关文章:

javascript - Flot - 将水平时间线与 'standard' 线组合

c# - 带有模型绑定(bind)的 Razor 页面 POST 多个表单

c# - 如何使用 linq 进行异步

如果使用 <a>,javascript 不会向处理程序提交数据

asp.net-mvc - MVC 4 日期格式无法识别输入掩码

javascript - 是否有 FF 等同于 chrome.declarativeContent.onPageChanged?

javascript - 如何在用户滚动经过某个 div 时更改 CSS

html - div 不是水平 Bootstrap

asp.net-mvc-3 - 具有级联部分的 Razor 嵌套布局

javascript - Angular js 函数根据名称匹配添加计数