【问题标题】:The top of jquery datepicker is not displaying properlyjquery datepicker 顶部显示不正确
【发布时间】:2013-06-11 11:07:38
【问题描述】:

您好,我在使用 jQuery Datepicker 中的按钮面板时遇到问题。我在 JQGrid 中使用日期选择器,但日期选择器顶部显示不正确

如果按钮面板显示正确,我不在乎它是否存在,但它不是。我的代码明确将其设置为 false,因此它不应该是可见的。

            {
            name: 'ExpirationDate', index: 'ExpirationDate', editable: true, editrules: { required: true }, editoptions: {
                dataInit: function (el) {
                    $(el).datepicker({
                        showButtonPanel: false,
                        dateFormat: "dd-mm-yy",
                        changeYear: true,
                        changeMonth: true,
                        minDate: '+2D'
                    });
                }
            }
        },

提前致谢。

更新 我越是研究这个问题,它看起来像是一个 CSS 问题,但我看不到任何文件丢失。我正在使用 MVC4,我的脚本捆绑如下

using System.Web.Optimization;

public static class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new StyleBundle("~/content/css/MasterCss")
            .Include("~/content/bootstrap.css")
            .Include("~/content/bootstrap-responsive.css")
            .Include("~/content/css/site.css"));

        bundles.Add(new StyleBundle("~/content/jquery.jqGrid/jqgridcss")
            .Include("~/content/jquery.jqGrid/ui.jqgrid.css"));

        bundles.Add(new StyleBundle("~/content/themes/base/jqueryuicss")
            .Include("~/content/themes/base/jquery.ui.theme.css")
            .Include("~/content/themes/base/jquery.ui.css"));

        bundles.Add(new ScriptBundle("~/Scripts/MasterScripts")
            .Include("~/Scripts/jquery-{version}.js")
            .Include("~/Scripts/jquery-ui-{version}.js")
            .Include("~/Scripts/i18n/grid.locale-en.js")
            .Include("~/Scripts/jquery.jqGrid.js")
            .Include("~/Scripts/bootstrap.js"));

        bundles.Add(new ScriptBundle("~/Scripts/Validation")
            .Include("~/Scripts/jquery.validate.js")
            .Include("~/Scripts/jquery.validate.unobtrusive.js")
            .Include("~/Scripts/App/referencedata.validation.js"));

        bundles.Add(new ScriptBundle("~/Scripts/Index")
            .Include("~/Scripts/App/splash.js"));
    }
}

并且在以下布局中调用捆绑包

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="utf-8" />
     <title>@ViewBag.Title - ReferenceDataManagement </title>
     @Styles.Render("~/content/css/MasterCss")
     @Styles.Render("~/content/jquery.jqGrid/jqgridcss")
     @Styles.Render("~/content/themes/base/jqueryuicss")

</head>
<body>
    <div class="container" style="max-width: 100% ;min-width: 1235px">
        <div class="row"> @RenderPage("~/Views/Shared/_Header.cshtml") </div>
        <div class="row"> @RenderPage("~/Views/Shared/_menu.cshtml") </div>
        <div class="row"> @RenderBody() </div>
        <div class="row"> @RenderPage("~/Views/Shared/_Footer.cshtml") </div>
    </div>
    @Scripts.Render("~/Scripts/MasterScripts")    
    @RenderSection("scriptholder", false)

    @MiniProfiler.RenderIncludes(RenderPosition.Right, false, false, 15, true)
</body>
</html>

运行代码时生成脚本的 HTML 输出是

<script src="/Scripts/jquery-1.9.1.js"></script>
<script src="/Scripts/jquery-ui-1.10.1.js"></script>
<script src="/Scripts/i18n/grid.locale-en.js"></script>
<script src="/Scripts/jquery.jqGrid.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/App/CodeListGrid.js" type="text/javascript"></script>
<script async type="text/javascript" id="mini-profiler" src="/mini-profiler-resources/includes.js?v=xwYPDDH1blvqmxgsBweNC++H7CFU3KGQ+zFcVlJPsXw=" data-version="xwYPDDH1blvqmxgsBweNC++H7CFU3KGQ+zFcVlJPsXw=" data-path="/mini-profiler-resources/" data-current-id="e19ebd5a-9b81-40f9-993a-545cd8dfc3ce" data-ids="e19ebd5a-9b81-40f9-993a-545cd8dfc3ce" data-position="right" data-trivial="false" data-children="false" data-max-traces="15" data-controls="true" data-authorized="true" data-toggle-shortcut="Alt+P" data-start-hidden="false"></script>

此代码直接位于标记之前。从查看示例 datepicker 我的应该看起来更整洁并且更小。我通过删除它检查了我的自定义 css,但我仍然有同样的错误,所以我把它排除在这篇文章之外。

【问题讨论】:

  • 设置jsfiddler解决问题。
  • 请做一个小提琴演示。

标签: jquery asp.net-mvc-4 jqgrid datepicker twitter-bootstrap-rails


【解决方案1】:

抱歉,您发布的代码不包含按钮面板。如果您使用showButtonPanel: true,您会看到日期选择器下方的栏,带有“今天”和“完成”按钮

请参阅 Datepicker 文档 here 的“显示按钮栏”部分的演示。您发布的图片上的日期选择器不包含按钮栏,因此一切正常。

【讨论】:

  • 感谢您向我指出这一点,我以为按钮面板是顶部的左/右按钮。所以现在的问题应该是为什么我的代码的顶部搞砸了。我想这是一个样式问题?
  • @JeffFinn:不客气!我想你有一些 CSS 冲突,但你的问题没有包含足够的信息来重现问题。
  • 谢谢,我会快速使用 css,据我所知我们没有使用任何自定义 css 我记得在某处看到 jqgrid 或 datepicker 的自动调整大小功能。如果这不起作用。我会尝试找出一种更好的方法来提供重现所需的信息。我必须学习如何使用那个 jsfiddle 站点
【解决方案2】:

这绝对是一个 css 问题,我下载了一个新的 Jquery Ui 主题并选择了 datepicker 并将其添加到我的项目中。在那之后一切都开始工作了,我有了一个不错的新配色方案。

我认为 datepicker css 没有正确包含在我的 css 中,但我不想通过基本 jquery ui 的 css 并确定它是否包含。

【讨论】:

    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    相关资源
    最近更新 更多