【问题标题】:C# ASP.NET Set Focus On TextBox After Enter Key Triggers Save ButtonC# ASP.NET 在输入键触发保存按钮后设置焦点在文本框上
【发布时间】:2013-10-23 20:55:53
【问题描述】:

我有一个 ASP.NET 4.5 页面,其中有一个动态创建的文本框列表

我已将 asp.panel 的默认按钮设置为保存按钮。

如果用户在填写文本框的过程中按了回车键,则表单会保存,但随后会将焦点重新设置在页面顶部。如何让它将焦点重新设置在最后一个正在编辑的文本框上?

【问题讨论】:

标签: c# asp.net textbox focus


【解决方案1】:

您可以通过 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>

【讨论】:

  • 我绝对不是 JavaScript 专家,所以我可能会错误地实现它。但是它不能像键入的那样工作。我创建了一个变量 test = hfFocusedControl.Value 仅在页面加载的回发时运行,它始终显示为“”
  • 我收回它,这确实有效,我忘记了我的母版页导致这是隐藏控件的错误 ID,我必须查看页面源并获取呈现的 ID。
  • @JStellato 您还可以使用控件的客户端 ID,例如:$('#')。可能需要将整个 ) 一起使用,甚至文字就足够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 2016-05-23
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
相关资源
最近更新 更多