gpt4 book ai didi

jQuery 在 asp net core 2 razor 中设置日期值

转载 作者:行者123 更新时间:2023-12-01 05:17:29 24 4
gpt4 key购买 nike

我在我的 asp net core razor 表单中遇到了 jQuery 问题。我可以使用 jQuery 在文本等输入类型中更改值,但不能更改日期类型,我不知道为什么。

这是项目模型的一部分,只是我想更改形式的属性:

[DataType(DataType.Date)]
public DateTime? OnSite { get; set; }

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

这是 Razor 表单的部分:

<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 脚本:

$(@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);

});

这就是生成表单的样子(源页面 View ):

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

正如我所说,我可以将星期一值放入文本、文本框,但我不能输入=“日期”,可能是因为 razor 在后台使用了一些日期时间选择器,这不会让我更改,或者我不知道。浏览器中生成的表单如下所示: Opening date

这只是我想要更改的输入(到本周的星期一): OnSite date

解决

输入类型=日期中的日期基于系统的日期时间 - 因此服务器或本地计算机。但是事件我将 Windows 10 的本地日期时间更改为 "dd.MM.yyyy",datetimepicker 不接受 jquery 脚本中的此值。我已将输入日期的值格式化为此“YYYY-MM-DD”

这是一个有效的简单示例:

型号:

[DataType(DataType.Date)]
public DateTime? OnSite { get; set; }

查看:

<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:

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);

最佳答案

[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;
}

这可能是后端的一个小解决方法。在名为“today”的变量中,您可以输入每天,例如“OpeningDate”,它应该返回您想要的实际周的星期一的日期,当您获取 x.Project.MondayOfCurrentWeek 时,您将收到星期一的日期。如果有用的话请发送一些反馈。

关于jQuery 在 asp net core 2 razor 中设置日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48193586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com