日历小部件(JavaScript)和可用性问题

时间:2011-11-29 18:38:19

标签: javascript jquery javascript-events accessibility usability

我想使用Calendar小部件来帮助用户选择日期。

我希望使用任何独立日历或jquery插件。在我的项目中,我使用的是jquery,我不想使用任何其他框架。

我看了很多日历,但他们都有同样的问题。我现在将对其进行描述,见下文:

有两种方式可以显示日历: 1.点击某个按钮,图标等显示它。 2.单击文本字段(我们将看到日期选择的结果)以显示它

我选择了第二种方式。在我的情况下,我将只有一个文本字段没有任何添加图标,按钮等。 当此文本字段获得焦点时,日历将显示。当用户选择任何日期时,日历将被隐藏,文本字段将显示所选日期。

这里我有主要问题......

显示日历后,文本字段失去焦点。在选择日期之后,焦点没有回到此字段,并且键(键盘上)从开始开始运行。

从可用性点来看,如果用户从日历中完成选择日期,并且所选日期显示在文本字段中,他可以继续使用键转到下一个文本字段。

任何想法如何解决?

P.S。我只有一个想法,但我不喜欢它,因为它看起来有点难看

当日历显示时,我可以在文本字段上销毁事件处理程序(焦点事件)。 当用户选择的日期和日历消失时,我可以将焦点设置在此文本字段上,并再次为此文本字段附加事件监听器(焦点)。

感谢。

2 个答案:

答案 0 :(得分:2)

由于JavaScript是一种单线程语言,您只需将变量(disableEvents或其他内容)设置为true,并在调用.focus()时将其设置为false - 这不会导致任何麻烦,不需要太多工作。

答案 1 :(得分:1)

jQuery-UI's datepicker不会将焦点发送到弹出日历窗口小部件,而是期望用户使用替代控件来更改日期,此外,这将允许用户在他们选择时手动键入日期。