Page 65 - JavaScript修炼之道
P. 65

54       第四部分  表单技巧


             任务 24  在表单中提供动态的帮助 tooltip


                 有时,我们在网上放有复杂的表单。表单域可能有高层语义或者非平凡的输入规则,如下图
             所示。例如,或许要强调密码域的复杂性要求。这时,最有效(虽然不太礼貌)的做法就是直接
             写出来警告用户。但如果多个输入域都需要详细的警告和说明,表单就会变得拥挤而零乱。













                 有一个解决办法。把这些细节放在每个表单域独自的tooltip里,使它们只在需要时(也就是
             当输入域获得焦点时)出现。简单来说,这是把任务12的做法用到了表单上。

                 注意,tooltip放置的最佳位置是在label标签里,而不只是在同一 <p> 标签里。这样如果是盲
             人用户使用的话,这些信息可以不受屏幕阅读器的当前模式影响,始终能被获取到 。
                                                                                     ①
                 CSS样式,尤其是这些tooltip的位置,对本任务很重要,所以我在下一页给出了部分CSS代码。
             但这诚然是一个简单的例子。在代码和效果上它都可以变得更复杂:用库来给focus和blur事件
             模拟实现弹出效果,就可以不必给每个相关域都手动注册事件监听器。笔者写到这里时,最新的
                                             ②
             jQuery已经能直接作出渐变弹出效果 ,你应该能在你喜欢的JavaScript框架找到这个多少有点官
             方的插件。
















             ——————————
                ① 屏幕阅读器一般会根据当前选中的表单输入元素读出关联的 <label> 标签中的文字,而不一定会阅读同一 <p>
                  标签中的文字。*
                ② 应该是指jQuery 1.4.1版(2010-1-25发布)中新增的.live("focus")和.live("blur")。*
   60   61   62   63   64   65   66   67   68   69   70