我有一个简单的ASP.Net表单,包含txtBox和btn
用户单击btn,它会在回发中添加文本到ASP:TextBox(它添加一个已知的“起始文本”。
在回发之后,我希望将焦点设置到文本框中文本的末尾。
如果我调用Page.SetFocus(...)或txtBox.Focus(),那么txtBox会获得焦点,但是在文本的开头 - 这意味着如果用户开始输入,他们将在错误的位置
e.g。
cursor
100-01
希望它是
100-01 cursor
我在文本框中尝试了以下内容:
onfocus="alert('focus');this.value = this.value;"
但“警报”只出现在前两次?什么都没有?
答案 0 :(得分: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>