我有一個帶有實時搜索功能的文本框。除了一個問題,它工作得很好。如果我在其上鍵入任何字符,它就會失去焦點。如果我設置了textbox.Focus(),則光標將位於文本框的開頭。如何在輸入時在文本框的末尾設置焦點?
我已經嘗試了互聯網上的大多數解決方案。請在下面檢查我的代碼。
asp:TextBox ID="searchCompany" runat="server" Text="" CssClass="searchCompany" AutoPostBack="true" Width="190px" OnTextChanged="searchCompany_TextChanged"></asp:TextBox>
在Page_Load中
protected void Page_Load(object sender, EventArgs e)
{
//ScriptManager1.RegisterAsyncPostBackControl(Menu1);
menuDisplay();
searchCompany.Attributes.Add("onkeyup", "setTimeout('__doPostBack(\\'" + searchCompany.UniqueID + "\\',\\'\\')', 0);");
//searchCompany.Attributes.Add("onfocus", "javascript:setSelectionRange('" + "','')");
//searchCompany.Focus();
}
和我曾嘗試的JavaScript如下
<script type="text/javascript">
function setSelectionRange() {
var inputField = document.getElementById('searchCompany');
if (inputField != null && inputField.value.length > 0) {
if (inputField.createTextRange) {
var FieldRange = inputField.createTextRange();
FieldRange.moveStart('character',inputField.value.length);
FieldRange.collapse();
FieldRange.select();
}
}
}
</script>
我試圖把代碼上的方法「searchCompany_TextChanged」如果用戶鍵入任何字符被調用每次都在一個文本框中,但是它不能正常工作。
我看到其他解決方案使用Textbox.Select()但System.Windows.Control不工作在asp.net我猜。
任何想法??
不要在keyup上回發。你需要使用AJAX。 – SLaks 2013-02-18 21:43:45
嗨SLaks鍵盤是每當用戶在文本框上鍵入內容時更新我的搜索字段的鍵盤。這不是一個好方法嗎? – warang 2013-02-18 22:32:02
閱讀本文[jQuery在文本區域設置光標位置](http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area)。有一些很好的例子:-) – jwillmer 2013-02-18 22:49:34