2010-10-27 93 views
3

我有一個簡單的ASP.Net格式txtBox和btn。
用戶單擊btn,它將文本添加到ASP:回發中的TextBox(其添加已知的「初始文本」
回發之後,我想將焦點設置爲文本框中文本的末尾。回發後將焦點設置爲文本框中文本的結尾?

如果我調用Page.SetFocus(...)或txtBox.Focus(),那麼txtBox會獲得焦點,但是會在文本的開頭 - 這意味着如果用戶開始輸入,他們將會在錯了地方。


cursor 100-01

想它是

100-01 cursor

我試着在文本框中執行以下操作:

onfocus="alert('focus');this.value = this.value;" 

但 「警報」 僅出現在第一個兩次?那麼沒有?

+0

Plaese不要轉貼同樣的問題:http://stackoverflow.com/questions/4033141/set-focus-in-textbox-after-postback 你總是可以編輯你的問題。看看這個線程的更多信息:http://meta.stackexchange.com/questions/7046/how-to-get-attention-for-your-old-unanswered-questions – 2010-10-27 13:44:28

回答

5

我發現asp.net website溶液(檢查是否有關於特定解決方案的跨瀏覽器版本的討論!)

存在的javascrip代碼做到這一點:

<script type="text/javascript"> 
     function SetCursorToTextEnd(textControlID) 
     { 
      var text = document.getElementById(textControlID); 
      if (text != null && text.value.length > 0) 
      { 
       if (text.createTextRange) 
       { 
        var FieldRange = text.createTextRange(); 
        FieldRange.moveStart('character', text.value.length); 
        FieldRange.collapse(); 
        FieldRange.select(); 
       } 
      } 
     } 
</script> 
+0

如何從回傳中調用該回復雖然? – BlueChippy 2010-10-27 12:07:14

+0

我將這個函數綁定到onFocus事件處理程序上,就像在你的例子中一樣。 – zgorawski 2010-10-27 12:32:33