我的ASP.NET MVC视图中有一堆文本框提交给服务器。如何保留当前焦点,以便用户只需在任何文本框中按Enter键或单击提交按钮,当页面返回时(这都是通过GET),焦点是用户离开的位置?
谢谢!
答案 0 :(得分: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();
答案 1 :(得分:0)
您可能希望使用焦点记录元素,将其传递给控制器,然后让控制器将其传回。然后一些javascript将关注该元素。
似乎有几种方法可以找出并记录哪个元素具有焦点,但它们都不是很好(请参阅此hack http://trentrichardson.com/2008/05/24/an-attempt-to-find-focus/或此插件http://www.softwareunity.com/jquery/JQueryMoreSelectors/(它做同样的事情) )。
我可以说,没有更好的方法可以做到这一点。