1

我想使用日历小部件来帮助用户选择日期。日历部件(JavaScript)和可用性问题

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

我看到很多日历,但它们都有同样的问题。我现在来描述它,看下面:

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

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

在这里,我主要的问题......

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

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

任何想法如何解决它?

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

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

谢谢。

回答

1

jQuery-UI's datepicker不会将焦点发送到弹出式日历窗口小部件,而是用户需要使用备用控件来更改日期,此外,这将允许用户在应该他们选择的情况下手动键入日期。

+0

用户不应该手动写日期,他们可以随时发生错误。 这就是为什么我想他们应该从日历中选择它。 而且他们必须有能力使用键盘或鼠标来填写表格。 从字段跳转到字段通常通过鼠标单击或按Tab键进行。我不喜欢jQuery UI。谢谢 – user1016265

+0

@ user1016265,ui小部件的设计考虑到了可访问性。用户将不得不使用键盘,鼠标或等效的输入设备。如果他们禁用JavaScript,则他们也需要手动输入日期。 – zzzzBov

+0

我只是意味着什么后,使用jQuery UI的日历,你不能继续使用TAB键跳到下一个领域,你可以尝试通过你自己 – user1016265

2

由于JavaScript是单线程语言,因此您可以简单地将变量(disableEvents或其他)设置为true,并在调用.focus()时将其设置为false - 这不会造成任何麻烦并且不需要太多工作。

+0

好主意,谢谢 – user1016265