使用 Webshim 的日期选择器进行键盘输入

Keyboard Input with Webshim's Date Picker

我正在使用 webshims 库来更好地支持具有更多现代功能的旧浏览器。虽然日期选择器与鼠标配合使用效果很好,但我似乎无法通过键盘使用它。最简单的查看方法是访问 demo page。我正在使用 Firefox,因为它不支持日期。

不做任何修改尝试输入日期。我可以输入数字,但不能输入“/”。如果启用占位符,它甚至会建议使用斜线。我尝试省略分隔符或使用“-”(它让我输入)但是当表单提交时我没有得到任何值。

您应该如何通过键盘输入日期?

为了加分,是否可以让日期选择器不强制执行某种格式?我有可以解析各种日期格式的后端代码。因此,如果他们愿意,他们可以使用日期选择器,但如果他们输入了一些内容,那么他​​们输入的任何内容都会不加修改地发送到服务器上。

区域设置似乎有问题。据我所知,在区域设置中设置了一个名为 dateSigns 的表单配置属性。

我的解决方案是转到文件 shims/combos/5.js 并查找其中包含 dateSigns 的代码块。我在 1750 行左右找到了与美国英语相关的内容,如下所示:

    if(!formcfg['en-US']){
        formcfg['en-US'] = $.extend(true, {}, formcfg.en, {
            date: {firstDay: 0},
            patterns: {d: "mm/dd/yy"},
            dateSigns: '-',
          dFormat: "/",
            meridian: ['AM', 'PM']

        });
    }

我将 dateSigns 行更新为

dateSigns: '/',

这是一个可怕的 hack,必须有一种方法可以将其设置为配置,或者至少获得真正的语言环境设置来处理这个问题。但我没能在有限的时间内完成。但也许这会对你有所帮助。它对我有用。

尝试 this.This 适用于 '/' 格式..

 $.webshims.formcfg = {
      en: {
        dFormat: '/',
        dateSigns: '/',
        patterns: {
          d: "mm/dd/yy"
        }
      }

    };
    webshims.activeLang('en');