gpt4 book ai didi

javascript - 禁用特定日期及其之前的所有日期

转载 作者:行者123 更新时间:2023-12-03 06:38:54 25 4
gpt4 key购买 nike

我正在使用datetimepicker我想禁用 Controller 中的特定日期及其之前的所有日期。

那么如何将日期从 Controller 传递到日期时间选择器?

这就是我的意思:

MRecord firstMR = db.MRecords.Where(x => x.AID == dSum.AircraftID).OrderBy(x => x.DateEntered).FirstOrDefault();

<script type="text/javascript">
$(function () {
$('#datetimepicker5').datetimepicker({
disabledDates: [
// how do I disable all dates before and including firstMR.DateEntered?
]
});
});
</script>

是否可以在 View 中完成这一切?我正在使用 Razor 。

感谢任何帮助。

更新

我正在 Razor View 中尝试此操作:

@{
ViewBag.Title = "Create";
var firstMR = new ALogSummary.Models.MRecord();

using (var db = new AviationLogSummary.Models.ALogsEntities())
{
firstMR = db.MRecords.Where(x => x.AID == Model.AID).OrderBy(x => x.DateEntered).FirstOrDefault();
}

}



<div id="datetimepicker2" class="input-group date">
@Html.EditorFor(model => model.Day, new { htmlAttributes = new { id = "Day", @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Day, "", new { @class = "text-danger" })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker2').datetimepicker({
format: 'MM/DD/YYYY HH:mm',
minDate: [@firstMR.DateEntered.Date]
});
});
</script>

我在调试时收到此错误:

JavaScript critical error at line 160, column 49 in http://localhost:xxxxx/DSummaries/Create/7\n\nSCRIPT1007: Expected ']'

更新2:

<div id="datetimepicker2" class="input-group date" >
@Html.EditorFor(model => model.Day, new { htmlAttributes = new { id = "Day", @class = "form-control", data_mindate = firstMR.DateEntered.Date } })
@Html.ValidationMessageFor(model => model.Day, "", new { @class = "text-danger" })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>

脚本:

这是在它自己的 JS 文件中

$(function () {
$('#datetimepicker2').datetimepicker({
format: 'MM/DD/YYYY HH:mm',
minDate: $(this).data('mindate')
});
});

HTML 输出为:

<input class="form-control text-box single-line valid" id="Day" type="datetime" data-val-required="This field is required!" data-val="true" data-mindate="05/28/2016 00:00:00" data-val-date="This field: must be a date." value="06/28/2016 09:07"></input>

因此正在填充正确的想法,但我的脚本无法正常工作。

最佳答案

不要使用 disabledDates 选项,而是使用 minDate 选项来防止用户选择 minDate 值之前的日期

$('#datetimepicker2').datetimepicker({
format: 'MM/DD/YYYY HH:mm',
minDate: '@firstMR.DateEntered.Date'
});

由于此脚本位于外部 js 文件中(并且不会在外部文件中解析 razor 代码),因此您可以使用元素上的 data-* 属性传递值

@Html.EditorFor(model => model.Day, new { htmlAttributes = new { data_mindate = firstMR.DateEntered.Date, @class = "form-control" } })

请注意,无需包含 id = "Day" 因为它已由 EditorFor() 方法添加(而且您似乎已经犯了一个拼写错误,因为该脚本引用带有 id="datetimepicker2" 的元素。

然后在外部文件中

var day = $('#Day')
day.datetimepicker({
format: 'MM/DD/YYYY HH:mm',
minDate: day.data('mindate')
});

关于javascript - 禁用特定日期及其之前的所有日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38058612/

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