如何确定哪个文本框是关注的并向其添加文本?

时间:2015-03-25 06:23:54

标签: c# asp.net

我在asp.net中创建Web应用程序。我有5个文本框,它们是asp控件。我希望得到哪个文本框关注那个时间,然后当我按“添加”按钮时,“hello”文本必须添加到特定文本框中,在按下“添加”按钮之前将其聚焦。

我需要Asp.net(带有C#代码)才能进入下一步

1 个答案:

答案 0 :(得分:0)

由于最后一次焦点位于“添加”按钮,因此您需要在单击“按钮”之前“记住”TextBox。

尝试使用onfocus()事件。

<!-- Add a HiddenField control to "remember" the id of a TextBox -->
<asp:HiddenField ID="HiddenField1" runat="server" />  

<!-- Assign current focus to that hidden field -->
<asp:TextBox onfocus="document.getElementById('HiddenField1').value=this.id" ...>
<asp:TextBox onfocus="document.getElementById('HiddenField1').value=this.id" ...>

如果可行,您将能够在代码隐藏中获得值

string c = HiddenField1.Value;

if (!string.IsNullOrEmpty(c)) 
   if (c == "TextBox1")
      TextBox1.Text = "hi there";

注意:取决于您可能需要调用ClientID的环境(例如getElementById('<%=HiddenField1.ClientID%>')

<强>更新

正如我上面告诉你的那样,你可能需要使用HiddenField1.ClientID来查找HiddenField控件。当您的来源显示为

<input type="hidden" name="ctl00$MainContent$HiddenField1" id="MainContent_HiddenField1" /> 

<input name="ctl00$MainContent$TextBox1" type="text" id="MainContent_TextBox1" 
    onfocus="document.getElementById(&#39;HiddenField1&#39;).value=this.id" />    
<input name="ctl00$MainContent$TextBox2" type="text" id="MainContent_TextBox2" 
    onfocus="document.getElementById(&#39;HiddenField1&#39;).value=this.id" /> 

<input type="submit" name="ctl00$MainContent$Button1" value="Button" id="MainContent_Button1" />

这意味着您使用MasterPage和asp.net将控件的ID更改为MainContent_HiddenField1。因此,当您使用document.getElementById('HiddenField1')时,它将无法找到此类控件,因为它的ID不同。您需要使用

document.getElementById('MainContent_Button1').value=this.id

可以使用,但如果删除母版页或将文本框移动到其他容器

,则可能需要更改

或使用

document.getElementById('<%=HiddenField1.ClientID%>').value=this.id

会自动注入正确的id(推荐的asp.net方式)