繁体   English   中英

在页面加载时将焦点设置在文本框上

[英]Setting focus on a text box on page load

我已经尝试过如何在网页加载时自动将焦点设置为文本框中的信息?

 <asp:TextBox ID="tbSearchLastName" runat="server" style="float:right" CssClass="search" tabindex="1" meta:resourcekey="tbSearchLastNameResource" />

                        <script type="text/javascript">
                            window.onload = function () {
                                document.getElementById("tbSearchLastName").focus();
                            };
                        </script>

我希望页面加载时页面焦点位于文本框上,但我收到错误:

“无法获得属性'焦点'的值:对象为null或未定义”

谢谢。

你必须这样做......

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

您为TextBox(或任何.NET控件)提供的ID与在HTML中呈现的ID不同。 要获得正确的ID,您需要执行以下操作:

 document.getElementById("<%=tbSearchLastName.ClientID %>")

或者,如果您使用的是.NET 4,则可以强制它保持相同的ID

 <asp:TextBox ID="tbSearchLastName" ClientIDMode="Static" runat="server"/>

检查页面的来源(在浏览器中)tbSearchLastName的真实ID是什么。 可能它没有加载或已被更改

为什么不把tbSearchLastName.Focus()放在page_load方法后面的代码中?

http://msdn.microsoft.com/en-us/library/system.web.ui.control.focus.aspx

protected void Page_Load(object sender, EventArgs e)
{
    Form.DefaultFocus = "tbSearchLastName";
}
protected void Page_Load(object sender,EventArgs e){
tbSearchLastName.focus();
}

你可以在aspx.cs文件上试试这个,它简单而优雅

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM