我在ASP.NET MVC視圖中有一堆文本框提交給服務器。我怎樣才能保留當前焦點,以便用戶可以簡單地在任何文本框中輸入或單擊提交按鈕,並且當頁面返回(這全部通過GET)時,焦點是用戶離開的位置?回覆後關注元素
謝謝!
我在ASP.NET MVC視圖中有一堆文本框提交給服務器。我怎樣才能保留當前焦點,以便用戶可以簡單地在任何文本框中輸入或單擊提交按鈕,並且當頁面返回(這全部通過GET)時,焦點是用戶離開的位置?回覆後關注元素
謝謝!
您可以簡單地使用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();
您可能希望記錄具有焦點的元素,將其傳遞給控制器,然後讓控制器將其傳回。然後一些JavaScript會專注於這個元素。
看來有幾種方法可以找出並記錄哪個元素具有焦點,但它們都不是很好(請參閱此破解http://trentrichardson.com/2008/05/24/an-attempt-to-find-focus/或此插件http://www.softwareunity.com/jquery/JQueryMoreSelectors/(它大致相同))。
盡我所知,沒有更好的方法來做到這一點。