2016-03-15 115 views
1

在請求頁面之前最後一次聚焦的刷新之後,是否可以通過某種方式重新對焦輸入字段?在頁面刷新頁面後重新對焦輸入字段

我在我的WebPage中有一個Wicket窗體,在這個窗體中有相當多的輸入字段(比如文本字段),用戶可以用來過濾我的數據視圖。但是,例如,當用戶關注第二個輸入字段,然後點擊數據視圖中的「轉到下一頁」時,他失去了焦點,但由於可訪問性,有必要重新調整第二個輸入字段的焦點。

我的想法是先標記與jQuery的輸入欄「恢復爲關注焦點」聚焦時:

服務器上更新搜索與「恢復爲關注焦點」的標籤元素
$("input").focus(function() { 
    $("input").removeAttr("regain-focus"); 
    $(this).attr("regain-focus", "regain-focus"); 
}); 

然後 - 但這是一部分,我不知道該怎麼做... - 用「自動對焦」標記相應的組件:

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

使用JavaScript重新聚焦:

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

回答

2

既然你有JavaScript的經驗,那麼完成客戶端:$(document).on('focusin', 'input textarea', function(event) {localStorage.setItem('focus:'+location.pathname, event.target.id)})會更簡單,然後使用基於jQuery.ready()的邏輯來讀取條目並使用它。

+0

這是一個不錯的解決方案,謝謝! :) – RockaRolla

0

當頁面DOM /元素在請求/刷新/ ajax調用之間發生變化時,最好使用使用optimal-select的CSS選擇器來存儲元素的唯一標識符,並使用JQuery選擇器再次找到焦點設置。我在NoWicket Web框架中使用它來記住ajax調用中的焦點元素。 Example JS code here