我有一个 ASP.NET 4.5 页面,它有一个动态创建的文本框列表
我已将 asp.panel 的默认按钮设置为保存按钮。
如果用户在填写文本框的过程中并按下回车键,则表单会保存,但随后会将焦点重新设置在页面顶部。如何让它将焦点重新设置在最后一个正在编辑的文本框上?
您可以通过 javascript/jquery 将 onfocus 处理程序添加到所有表单元素,这会将当前聚焦控件的 id 保存到隐藏字段,并在使用 javascript 加载文档时读取该 id 值,以便您可以将焦点设置在正确的控件上。
例子:
<asp:HiddenField runat="server" ID="hfFocusedControl" />
<script>
$(document).ready(function(){
var id = $('#hfFocusedControl').val()
;
$('#'+id).focus();
$('input').focus(saveIdOnFocus);
});
var saveIdOnFocus = function(e){
var control = $(this)
, id = control.attr('id')
;
$('#hfFocusedControl').val(id);
}
</script>