首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery在asp网核2剃须刀中设置日期值

jQuery在asp网核2剃须刀中设置日期值
EN

Stack Overflow用户
提问于 2018-01-10 18:05:31
回答 1查看 2.1K关注 0票数 2

我的asp网络核心剃须刀形式中的jQuery有一个问题。我可以使用jQuery在文本之类的输入类型中更改值,但不能更改日期类型,我不知道为什么。

下面是Project的一部分,就是我想要在表单中更改的属性:

代码语言:javascript
复制
[DataType(DataType.Date)]
public DateTime? OnSite { get; set; }

[Display(Name = "Opening date")]
[DataType(DataType.Date)]
public DateTime? OpeningDate { get; set; }

这是Razor表单的一部分:

代码语言:javascript
复制
<div class="form-group">
   <label asp-for="Project.OnSite" class="control-label"></label>
   <input asp-for="Project.OnSite" class="form-control" style="width: 170px"/>
   <span asp-validation-for="Project.OnSite" class="text-danger"></span>
</div>

下面是我的jQuery脚本:

代码语言:javascript
复制
$(@Html.IdFor(x => x.Project.OpeningDate)).change(function () {
            var openingDate = $(@Html.IdFor(x => x.Project.OpeningDate)).val();
            var monday = moment(openingDate).day("Monday").format("MM/DD/YYYY HH:mm:ss");
            //alert(monday);

            $((@Html.NameFor(x => x.Project.OnSite))).val(monday);

});

这是如何生成表单(源页面视图):

代码语言:javascript
复制
<div class="form-group">
   <label class="control-label" for="Project_OnSite">OnSite</label>
   <input class="form-control" style="width: 170px" value="" type="date" id="Project_OnSite" name="Project.OnSite" />
    <span class="text-danger field-validation-valid" data-valmsg-for="Project.OnSite" data-valmsg-replace="true"></span>
</div>

正如我所说的,我可以将周一的值放入textare,textbox,但我不能使用type="date",这可能是因为剃须刀在后台使用了一些日期选择器,这不会让我更改,或者我不知道。浏览器中生成的表单如下所示:开幕日期

这就是我想要更改的内容(本周的星期一):OnSite日期

解析

输入type=date中的日期是基于系统的日期时间-因此服务器或本地机器。但是,如果我将windows 10的本地日期时间更改为"dd.MM.yyyy",则日期时间选择器不接受jquery脚本中的这个值。我将输入日期的值格式化为这个"YYYY-MM-DD".

--这是一个简单的示例,可以工作:

型号:

代码语言:javascript
复制
[DataType(DataType.Date)]
public DateTime? OnSite { get; set; }

查看:

代码语言:javascript
复制
<div class="form-group">
     <label asp-for="Project.OnSite" class="control-label"></label>
     <input asp-for="Project.OnSite" class="form-control" />
     <span asp-validation-for="Project.OnSite" class="text-danger"></span>
</div>

JQuery:

代码语言:javascript
复制
var dateFormat = "YYYY-MM-DD";
var openingDate = $(@Html.IdFor(x => x.Project.OpeningDate)).val();
var monday1 = moment(openingDate).day("Monday").day(-6).format(dateFormat);
$(@Html.IdFor(x => x.Project.OnSite)).val(monday1);
EN

回答 1

Stack Overflow用户

发布于 2018-01-18 13:12:56

代码语言:javascript
复制
[Display(Name = "Monday")]
[DataType(DataType.Date)]
public DateTime? MondayOfCurrentWeek
    {
        get
        {
            DateTime today = DateTime.Today;
            int currentDayOfWeek = (int)today.DayOfWeek;
            DateTime sunday = today.AddDays(-currentDayOfWeek);
            DateTime monday = sunday.AddDays(1);
            return monday;
        };
        set;
    }

这可能是后端的一个小解决办法。在名为“day”的变量中,您可以每天放置"OpeningDate“,它应该返回您想要的周的星期一的日期,当您得到x.Project.MondayOfCurrentWeek时,您将收到星期一的日期。如果有用的话,发送一些反馈信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48193586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档