页面在wicket中刷新后重新聚焦输入字段

时间:2016-03-15 13:06:59

标签: javascript java jquery wicket accessibility

在请求页面之前最后一次聚焦的刷新之后,是否有可能重新聚焦输入字段?

我的WebPage中有一个Wicket表单,在这个表单中有很多输入字段(如文本字段),用户可以使用它来过滤我的数据视图。但是,例如,当用户将注意力集中在第二个输入字段上,然后点击“转到下一页”'在数据视图中他失去焦点,但由于可访问性,有必要重新聚焦第二个输入字段。

我的想法是首先使用jQuery标记输入字段,然后使用" regain-focus"聚焦时:

$("input").focus(function() {
   $("input").removeAttr("regain-focus");
   $(this).attr("regain-focus", "regain-focus");
});

然后在服务器更新中搜索具有"重新获得焦点"的元素。标签 - 但是那部分,我不知道该怎么做...... - 使用"自动对焦标记相应的组件":

input.add(AttributeModifier.append("autofocus", "autofocus"));

并使用javascript重新聚焦:

$('[autofocus]').focus();

2 个答案:

答案 0 :(得分:2)

由于您拥有JavaScript经验,因此完全在客户端执行它会更简单:$(document).on('focusin', 'input textarea', function(event) {localStorage.setItem('focus:'+location.pathname, event.target.id)})然后使用基于jQuery.ready()的逻辑来读取条目并使用它。

答案 1 :(得分:0)

当你的页面DOM /元素在requests / refresh / ajax调用之间发生变化时,最好使用optimal-select的CSS选择器来存储元素的唯一标识符,并使用JQuery选择器再次查找它用于焦点设置。我在NoWicket Web框架中使用它来记住ajax调用的重点元素。 Example JS code here