如何在键入时在文本框末尾设置焦点
本文关键字:设置 焦点 文本 | 更新日期: 2023-09-27 17:59:52
我有一个带有实时搜索功能的文本框。除了一个问题外,一切都很好。如果我在上面键入任何字符,它就会失去焦点。如果我设置了文本框。Focus(),光标位于文本框的开头。
我在互联网上尝试过大多数解决方案。请检查下面的代码。
asp:TextBox ID="searchCompany" runat="server" Text="" CssClass="searchCompany" AutoPostBack="true" Width="190px" OnTextChanged="searchCompany_TextChanged"></asp:TextBox>
页面中加载
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的其他解决方案。选择(),但选择系统。Windows。控件在asp.net中不起作用。
知道吗??
有一个非常简单的技巧对我有效。基本上,将输入的文本值设置为自己的文本值,然后将光标移动到文本的末尾。这段代码使用jQuery来演示这一点,但您也应该能够在直接的JS中做到这一点。
HTML
<input type="text" id="focusText"></input>
<button id="focusButton">Set Focus</button>
JavaScript
$("#focusButton").click(function() {
var text = $("#focusText").val();
$("#focusText").val(text).focus();
})
下面是一个JavaScript的非jQuery示例,HTML应该是相同的:
document.getElementById("focusButton").onclick = function() {
var inputElement = document.getElementById("focusText");
var text = inputElement.value;
inputElement.value = text;
inputElement.focus();
}
下面是一个演示非jQuery版本代码的小提琴:http://jsfiddle.net/C3gCa/