2015-03-25 84 views
0

我在asp.net中創建web應用程序。我有5個文本框是asp控件。我想要得到哪個文本框在那個時候關注,然後當我按下「添加」按鈕時,「hello」文本必須添加到特定的文本框中,在按下「添加」按鈕之前,文本框已被聚焦。如何確定哪個文本框是關注的並向其添加文本?

我需要Asp.net(用C#代碼)移動到我的下一個步驟

+0

這是你的意思嗎? http://stackoverflow.com/questions/497094/how-do-i-find-out-which-dom-element-has-the-focus – 2015-03-25 06:27:36

回答

0

自從上次重點將放在添加按鈕,你需要「記住」文本框單擊該按鈕之前。

嘗試使用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"; 

注:取決於你的環境,你可能需要調用客戶端ID(如getElementById('<%=HiddenField1.ClientID%>')

UPDATE

正如我上面告訴你的,你可能需要使用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" /> 

這意味着,您使用母版和asp.net改變你的控制MainContent_HiddenField1的ID。所以當你使用document.getElementById('HiddenField1')時,它不會找到這樣的控件,因爲它的id是不同的。你要麼需要使用

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

這將工作,但如果刪除母版頁或將文本框移動到其他容器

或使用

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

將自動注入正確可能需要更改id(推薦asp.net的方式)

+0

謝謝。而我嘗試使用您的代碼,它顯示錯誤,如「Microsoft JScript運行時錯誤:'document.getElementById(...)'爲空或不是對象」。該怎麼辦 ? – 2015-03-25 08:41:05

+0

您是否嘗試按上面的建議更改'getElementById('<%= HiddenField1.ClientID%>')'?該錯誤意味着'HiddenField1'找不到,這意味着asp.net動態地將它改爲其他的id。 – Alex 2015-03-25 08:50:32

+0

我試過「getElementById('<%= HiddenField1.ClientID%>')」,同樣的錯誤得到 – 2015-03-25 08:58:32

相關問題