Виджет календаря (JavaScript) и проблема с юзабилити - PullRequest
1 голос
/ 29 ноября 2011

Я хочу использовать виджет Календарь, чтобы помочь пользователям выбрать дату.

Я хочу использовать любой автономный календарь или в качестве плагина jquery.В моем проекте я использую jquery, и я не хочу использовать какие-либо другие фреймворки.

Я видел много календарей, но у них всех одна и та же проблема.Я опишу его сейчас, см. Ниже:

Существует два способа отображения календаря: 1. нажать на какую-нибудь кнопку, значок и т. Д., Чтобы отобразить его.2. щелкнуть по текстовому полю (где мы увидим результат выбора даты), чтобы отобразить его

Я выбрал 2-й способ.В моем случае у меня будет только ОДИН текстовое поле без каких-либо дополнительных значков, кнопок и т. Д. Когда это текстовое поле получит фокус, появится календарь.Когда пользователь выбирает любую дату, календарь будет скрыт, и в текстовом поле будет отображаться выбранная дата.

И здесь у меня есть главная проблема ...

После появления календаря текстовое поле теряет фокус,А после выбора даты фокус не вернулся к этому полю, и клавиша (на клавиатуре) начала запускаться с начала.

С точки зрения удобства использования было бы хорошо, если бы пользователь закончил выбор даты из календаря и выбрал датупоявляется в текстовом поле, он может продолжать использовать клавишу, чтобы перейти к следующему текстовому полю.

Есть идеи, как ее решить?

PS У меня есть только одна идея, но мне не нравитсяэто, потому что это выглядит мне немного некрасиво

Когда календарь появляется, я могу уничтожить обработчик событий (событие фокуса) в текстовом поле.Когда выбранная пользователем дата и календарь исчезают, я могу установить фокус на это текстовое поле и снова прикрепить прослушиватель событий (фокус) для этого текстового поля.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Поскольку JavaScript является однопоточным языком, вы можете просто установить переменную (disableEvents или что-то) в значение true и установить ее в значение false, когда вы вызываете .focus() - это не вызовет никаких проблем и не вызовет ' не требует большой работы.

1 голос
/ 29 ноября 2011

средство выбора даты в jQuery-UI не отправляет фокус на виджет всплывающего календаря, вместо этого пользователь должен использовать альтернативный элемент управления для изменения даты, кроме того, это позволит пользователю вручную ввести дату в если они так захотят.

...