Ввод с клавиатуры с помощью средства выбора даты Webshim

Я использую библиотеку webshims для лучшей поддержки старых браузеров с более современными функциями. Хотя средство выбора даты отлично работает с мышью, у меня, похоже, возникают проблемы с его использованием с клавиатуры. Самый простой способ убедиться в этом - посетить демонстрационную страницу. Я использую Firefox, так как он не поддерживает дату.

Не внося никаких изменений, попробуйте ввести дату. Я могу ввести цифры, но не могу ввести "/". Если вы включите заполнитель, он даже предлагает косую черту. Я попытался опустить разделитель или использовать "-" (что позволяет мне печатать), но когда форма отправляется, я не получаю значения.

Как вы должны вводить дату с помощью клавиатуры?

Для бонусных баллов можно ли разрешить сборщику даты не применять формат? У меня есть внутренний код, который может анализировать различные форматы дат. Таким образом, они могут использовать средство выбора даты, если хотят, но если они что-то вводят, то все, что они вводят, отправляется на сервер без изменений.

2 ответа

Решение

Попробуйте это. Это работает для формата '/'.

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

    };
    webshims.activeLang('en');

Похоже, что есть проблема с настройками локали. Из того, что я могу сказать, есть атрибут конфигурации формы с именем 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: '/',

Это ужасный хак, и должен быть способ установить это как конфигурацию, или, по крайней мере, получить реальные настройки локали, чтобы справиться с этим. Но мне не удалось в то ограниченное время, которое у меня есть. Но, возможно, это поможет вам. Меня устраивает.

Другие вопросы по тегам