【发布时间】:2013-09-26 13:49:06
【问题描述】:
我在一个视图上有三个文本输入。都有课程datepicker。
@Html.TextBox("Dummy", DateTime.Now, new { @class = "datepicker" })
@Html.EditorFor(model => model.StartDate)
@Html.EditorFor(model => model.EndDate)
下面两个被我的DateTime编辑器模板覆盖:
@model DateTime?
@{
string editText = Model.HasValue ? Model.Value.ToShortDateString() : "";
}
@Html.TextBox("", editText, new { @class = "datepicker" })
这些是在我的_Layout 模板中为日期选择器设置的,代码如下:
$(function () {
$(".datepicker").datepicker({
dateFormat: "yy/mm/dd"
});
});
现在StartDate 的日期选择器弹出窗口完全没有响应。它甚至不会改变月份,更不用说选择日期了。所有三个输入都是相同的。 StartDate 和 EndDate 都是不可为空的 DateTime 字段,声明为:
[Display(Name = "Start Date")]
public DateTime StartDate { get; set; }
[Display(Name = "End Date")]
public DateTime EndDate { get; set; }
我使用的是通过 NuGet 安装的 jQuery 1.10.2 和 jQuery UI 1.10.3。我必须包含以下脚本才能使 DatePickers 正常工作:
<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>
我完全被困住了。
修正: Javascript 控制台中显示错误:
单击某一天会产生错误“无法设置属性 'currentDay' of undefined”。
单击上个月或下个月的图标会产生“无法读取未定义的属性'设置'”
【问题讨论】:
-
那么日期选择器是否会针对 EndDate 或 Dummy 等任何其他输入显示?也反应迟钝?还假设没有 Javascript 控制台错误?
-
@StevenV 我从上面引用我自己的话:“StartDate 的日期选择器弹出窗口,only,完全没有响应。”然而,有一些有趣的控制台错误。请参阅我对问题的修正。
-
当页面上的 ID 重复时,我遇到了这些 Javascript 错误。我会看看你呈现的 HTML,看看页面上是否有重复的“StartDate”ID。
-
你能把javascript和html拉出来放在jsfiddle上吗?至少这样您就可以开始隔离问题并在此处添加一个链接,以便人们查看您需要处理的内容
-
奇怪的是,您需要包含 jquery migrate 插件只是为了让日期选择器工作。页面上有一些较旧的 jquery 代码吗?这可能会导致冲突。
标签: asp.net-mvc jquery-ui asp.net-mvc-4 jquery-ui-datepicker