我已经尝试了How do you automatically set the focus to a textbox when a web page loads?
中的信息 <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>
我希望页面加载时页面焦点位于文本框上,但我收到错误:
“无法获取属性'焦点'的值:对象为空或未定义”
感谢。
答案 0 :(得分:5)
你必须这样做......
document.getElementById('<%= tbSearchLastName.ClientID%>').focus();
答案 1 :(得分:2)
您为TextBox(或任何.NET控件)提供的ID与HTML中呈现的ID不同。要获得正确的ID,您需要执行以下操作:
document.getElementById("<%=tbSearchLastName.ClientID %>")
或者,如果您使用的是.NET 4,you can force it to keep the same ID
<asp:TextBox ID="tbSearchLastName" ClientIDMode="Static" runat="server"/>
答案 2 :(得分:1)
检查您的页面来源(在浏览器中)tbSearchLastName的真实ID是什么。可能它没有加载或已被更改
答案 3 :(得分:1)
为什么不把tbSearchLastName.Focus()
放在page_load方法的代码中?
http://msdn.microsoft.com/en-us/library/system.web.ui.control.focus.aspx
答案 4 :(得分:1)
protected void Page_Load(object sender, EventArgs e)
{
Form.DefaultFocus = "tbSearchLastName";
}
答案 5 :(得分:0)
protected void Page_Load(object sender,EventArgs e){
tbSearchLastName.focus();
}
你可以在aspx.cs文件上试试这个,简单而优雅