【问题标题】:Auto focus on form text field .Focus() Me.show()自动关注表单文本字段 .Focus() Me.show()
【发布时间】:2019-07-18 19:37:47
【问题描述】:

我希望浏览器在为我的 vb.net Web 应用程序加载登录页面时自动关注用户名文本框 - 我在 SO 上遇到了this 答案,并通过添加对 @ 的调用来尝试接受的答案987654325@ & UserName.Focus() 在我的 login.aspx.vb 文件的Page_Load() 函数中:

Protected Sub Page_Load(...) Handles Me.Load
    ...
    Me.Show()
    UserName.Focus()

End Sub

当我这样做时,Me.Show() 会抛出一个编译错误,说明

“显示”不是“登录”的成员

如果我评论该行并运行应用程序,页面会加载,但焦点不会自动设置在登录表单的用户名框上。

如何让应用自动关注此文本字段?

编辑

我尝试在 JS 中执行此操作,方法是将以下内容添加到我的 login.aspx 文件中:

$(document).ready(function () {
    $('#UserName').focus()

但同样,当页面加载时,焦点不在 UserName 文本框上(似乎没有任何焦点在任何页面内容上)。

从下面的屏幕截图中可以看出,UserName 是我尝试将焦点设置到的文本框元素的 ID:

【问题讨论】:

标签: asp.net webforms


【解决方案1】:

对不起,我没有足够的声誉,所以我不能发表评论,但如果我理解正确,你可以在 JavasCript 部分这样做:

document.getElementById('<%= UserName.ClientID%>').focus(); 

或者您可以在 form_load 事件中尝试Form.DefaultFocus = "UserName";

【讨论】:

  • 我尝试将 JS 添加到我的 login.aspx 文件中,使用 $(document).ready(function () { $('#UserName').focus() },但这似乎没有什么不同...
  • 您确定在客户端的用户名控件的 id 是“用户名”吗?您可以在 Element 选项卡上使用 Chrome DevTools 进行验证吗?或尝试:$('#').focus();
  • $('#').focus();抱歉,= 和 UserName.ClientID 之间没有空格
  • 是的,我确信UserName 控件的名称是UserName- 将上传一个屏幕截图显示。
猜你喜欢
  • 1970-01-01
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
相关资源
最近更新 更多