2009-07-27 40 views
1

我在ASP.NET MVC視圖中有一堆文本框提交給服務器。我怎樣才能保留當前焦點,以便用戶可以簡單地在任何文本框中輸入或單擊提交按鈕,並且當頁面返回(這全部通過GET)時,焦點是用戶離開的位置?回覆後關注元素

謝謝!

回答

3

您可以簡單地使用JQuery來設置具有焦點的項目的隱藏表單字段。

<script type="text/javascript"> 
$(document).ready(function() { 
    $("input").click(function() { 
     $("#Focus").val = $(this).attr('id'); 
    }); 
}); 
</script> 

<form action="#"> 
    <input id="Text1" type="text" /> 
    <input id="Text2" type="text" /> 
    <input id="Text3" type="text" /> 
    <input id="Text4" type="text" /> 
    <input id="Focus" type="hidden" /> 
</form> 

然後,所有你需要做的是傳回的頁面,並設置焦點

$("#<%= ViewData["Focus"] %>").focus(); 
0

您可能希望記錄具有焦點的元素,將其傳遞給控制器​​,然後讓控制器將其傳回。然後一些JavaScript會專注於這個元素。

看來有幾種方法可以找出並記錄哪個元素具有焦點,但它們都不是很好(請參閱此破解http://trentrichardson.com/2008/05/24/an-attempt-to-find-focus/或此插件http://www.softwareunity.com/jquery/JQueryMoreSelectors/(它大致相同))。

盡我所知,沒有更好的方法來做到這一點。