【问题标题】:Localization not working in jQuery UI datePicker本地化在 jQuery UI datePicker 中不起作用
【发布时间】:2015-02-11 10:43:38
【问题描述】:

我对我正在维护的 Web 应用程序的 UI 进行了多次修改。其中包括从 NuGet 获取 JS 库并将它们与比以前更新的版本对齐。

旧版本,运行 jQuery 1.8.2 和 jQuery UI 1.8.24(由 Firebug 和shown to you 自定义、缩小、重新美化)运行完美本地化的DatePicker,包括格式dd/MM/yyyy,即格式由 MVC 页面连接到文本框中的数据。

现在我已经获取了 jQuery 1.11.2 和 jQuery UI 1.11.2,假设一切都将继续按预期工作。

没有。

DatePicker 仍然初始化如下:

<script type="text/javascript">
       $(function() {
            $.datepicker.setDefaults($.extend({ showMonthAfterYear: false }, $.datepicker.regional['']));
            $(".datePicker").datepicker($.datepicker.regional['it']);
            $('.datePicker').datepicker('option', 'changeMonth', true);
            $('.datePicker').datepicker('option', 'changeYear', true);
            $("#locale").change(function() {
                $('.datePicker').datepicker('option', $.extend({ showMonthAfterYear: false },
                    $.datepicker.regional[$(this).val()]));
            });
        });
</script>

文本框是

<input type="text" class="datePicker" id="date_begin" name="pDateBegin" value="<%=Some.Data %>" readonly="readonly"/>
<input type="text" class="datePicker" id="date_end" name="pDateEnd" value="<%=Some.Data %>" readonly="readonly"/>

简而言之,旧应用程序显示本地化良好的日历并接受dd/MM/yyyy 日期。新的重构应用程序显然不接受日期为24/02/2015 作为有效日期,将文本框留空。该版本显示英文本地化日历,而 JS 代码需要it 区域。从旧应用程序的 Firebug 控制台我可以正确看到 $.datepicker.regional['it'] 的值,而在新应用程序中它是空的。

我想追查,自己解决问题,在代码中定义 IT 区域的位置,但搜索 Chiudi(“关闭”的消息)找不到任何事物。看起来语言来自神秘。

旧应用程序包括以下文件(按 Firebug 的顺序):

  • jquery.form.js
  • jquery-1.8.2-min.js
  • jquery-ui-1.8.24.custom.min.js(粘贴中的链接,魔字Chiudi没有结果)
  • superfish.js
  • 自定义应用程序的 JS 脚本(包含在新应用程序中,无论如何都不会覆盖 datepicker)
  • MicrosoftAjax.js
  • MicrosoftMVC.js
  • jquery.tablesorter.js
  • jquery.tablesorter.pager.js

在 ASPX 代码中甚至没有发现 datepicker 的区域覆盖,我在我正在检查的页面中还没有更改。

问题是

如何将语言添加到jQuery UI 的标准 NuGet 分发?

【问题讨论】:

标签: jquery asp.net-mvc jquery-ui datepicker


【解决方案1】:

您可以包含此代码:

<script type="text/javascript"
        src="http://jqueryui.com/ui/i18n/jquery.ui.datepicker-fr.js">
</script>

http://jqueryui.com/datepicker/#localization - 看看这个演示,你可以从这里下载语言文件:https://github.com/jquery/jquery-ui/tree/master/ui/i18n

【讨论】:

  • 太好了。我没有说的是,我不能在这个项目上使用 CDN,只是因为该应用程序(可能)在 large-american-bank-that-has-been-recently-hacked-leaking-personal 上运行-data xD,工作站位于重型防火墙/代理后面,但对于一般情况,答案是可以的。实际上可以同时安装 NuGet 包(如下)并使用 Web 优化来添加 CDN 引用
【解决方案2】:

好的,像往常一样,我在 SO 上发布问题 12 秒后自己找到答案。

Install-Package jQuery.UI.i18n 

该包没有出现在列表顶部,我必须搜索 Tags:"jQueryUI" i18n 才能找到它

下一步是修改(对我来说,我使用 Web 优化)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多