【问题标题】:DateTimePicker not working日期时间选择器不工作
【发布时间】:2015-01-28 14:13:57
【问题描述】:

我一直在从事 MVC 项目,到目前为止,我一直在尝试集成 (jquery) datetimepicker,如果我将其添加为简单的 HTML 控件,它将按预期工作:

_layout.cshtm

    @Scripts.Render("~/bundles/jquery")

BundleConfig.cs

    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
          "~/Scripts/jquery-{version}.js"));

查看 >

<p>Date: <input type="text" id="datetimepicker" /></p>

<script type="text/javascript">
   jQuery('#datetimepicker').datetimepicker({});
</script>

但是当我尝试在我的代码中使用嵌入时它不起作用:

 <div class="form-group">
        @Html.LabelFor(model => model.deliveryDate, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.deliveryDate, new { @id = "datetimepicker", @type="text" })
            @Html.ValidationMessageFor(model => model.deliveryDate)
        </div>
    </div>

有什么建议吗?

如果您需要更多代码,请告诉我,我很乐意分享。

【问题讨论】:

  • 控制台有错误吗?您是否包含jquery.js 以及日期选择器?说“它不起作用”永远不足以让别人帮助你。
  • 您是否尝试将多个项目设置为datetimepicker?这可能会中断,因为id 应该是唯一的。尝试使用class 而不是id
  • 尝试不使用 {} 调用它,看看是否包含 jquery
  • 如果您有一些错误,请检查您的控制台并更新帖子(我的建议是使用 chrome 控制台,有更好的日志)

标签: c# jquery .net asp.net-mvc


【解决方案1】:

jQuery datetimepicker 是 jQuery UI 附带的 jQuery 扩展。据我所知,正如 Stephen Muecke 所指出的,您似乎没有包含任何 jQuery UI 代码。这是一个指向 jQuery UI 下载页面的链接,以获取让 datepicker 工作所需的最少代码:http://jqueryui.com/download/#!version=1.11.2&themeParams=none&components=1000000000001000000000000000000000000

【讨论】:

  • 我使用 Visual Studio 2013 中的 nutget 获得了 jquery 和 jqueryUI。我获得了项目中的所有脚本和 CSS 文件。
【解决方案2】:

我之前遇到过类似的问题,问题是 { @id = "datetimepicker", @type="text" } 参考:jQuery('#datetimepicker').datetimepicker({}); 没关系,但您需要将 type=text 替换为 type="datatime" 应该可以工作

<div class="form-group">
        @Html.LabelFor(model => model.deliveryDate, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.deliveryDate, new { @id = "datetimepicker", @type="datetime" })
            @Html.ValidationMessageFor(model => model.deliveryDate)
        </div>
    </div>

【讨论】:

  • 这毫无意义。您不需要为 jquery datepicker 设置 @type="datetime"。 OP 似乎没有包含jquery-ui.js(仅jquery.js),这意味着此代码将呈现HTML5 datepicker(支持有限)的浏览器实现,而不是jquery datepicker
  • @StephenMuecke 我认为他在生成视图时强制此属性使用 type="text",并且 jquery 选择器默认使用 type="text"
  • @Html.TextBoxFor() generate type="text" 所以添加new { @type="text" } 是没有意义的(它被助手忽略了,所以它根本没有区别)。将其更改为 @type="datetime" 意味着它将呈现浏览器 HTML5 datetimepicker,因为 OP 未包含相关脚本,从问题中的链接来看,&lt;script src="/jquery.datetimepicker.js"&gt;&lt;/script&gt; 您已经为 OP 提供了替代方案(仅适用于某些浏览器,而不适用于全部在 FireFox 中),而不是问题的答案
  • @StephenMuecke 好吧,如果这不是答案,为什么有效?哈哈。在所有浏览器中测试;)
  • 根据screenshot,它不是默认的Chrome Datepicker
猜你喜欢
  • 2014-09-27
  • 1970-01-01
  • 2013-08-08
  • 2014-07-21
  • 2018-10-28
  • 2017-12-24
相关资源
最近更新 更多