JQuery Dialog 是一款非常常见的弹出窗口组件,可以方便地呈现内容、表单等资料。在弹出窗口中,焦点控制是一个非常重要的问题。
$( "#dialog-box" ).dialog({ open: function() { $( "#input-box" ).focus(); } });
当弹出窗口打开时,使用 JQuery 的 focus() 方法,将焦点设置到表单元素中。这样,用户可以方便地输入内容,无需再次单击表单元素。同时,也方便了键盘操作的用户,可以直接使用 Tab 键切换不同的输入框。
$( "#dialog-box" ).dialog({ create: function() { $(document).on('keydown', function(e){ if(e.keyCode == $.ui.keyCode.TAB){ e.preventDefault(); if ($(e.target).nextAll(":input:not(:disabled)").first().length>0){ $(e.target).nextAll(":input:not(:disabled)").first().focus(); } else { $(":input:not(:disabled)").first().focus(); } } }); } });
在弹出窗口中,焦点控制还涉及到键盘操作。当用户按下 Tab 键时,会切换到下一个可输入元素。若用户切换到最后一个元素,再次按下 Tab 键,则应该选择第一个可输入元素。利用 JQuery Dialog 提供的方法,加入 TAB 事件处理器,便可以实现较为完善的焦点控制。