2011-09-08 43 views
2

我已经尝试在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

只是好奇,你是在只有IE浏览器有这个问题的机会? – vol7ron

+0

我正在使用IE ... – joncodo

+0

乔纳森,我很好奇,如果它在FF工作。 IE和FF在确定页面加载和dom加载方式方面的工作方式不同。通常当人们遇到这些问题时,因为他们试图找到一个存在的对象,现在还没有。 – vol7ron

回答

5

你要做像...

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

这是正确的。我需要clientID。谢谢。 – joncodo

1

检查页面的源代码(在浏览器中)tbSearchLastName的真实ID。也许这不加载或已改变

2

你给你的文本框(或任何.NET控件,对于这个问题)的ID是不一样的ID在HTML中呈现。为了得到正确的ID,你需要做的:

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

或者,如果你是在.NET 4中,you can force it to keep the same ID

<asp:TextBox ID="tbSearchLastName" ClientIDMode="Static" runat="server"/> 
1
protected void Page_Load(object sender, EventArgs e) 
{ 
    Form.DefaultFocus = "tbSearchLastName"; 
} 
0
protected void Page_Load(object sender,EventArgs e){ 
tbSearchLastName.focus(); 
} 

你可以在aspx.cs文件试试这个,它古朴典雅

相关问题