首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回发后维护文本框光标

回发后维护文本框光标
EN

Stack Overflow用户
提问于 2011-12-15 12:46:40
回答 2查看 5.5K关注 0票数 1

我想在输入字符时更改与textbox相同的标签值。那么这里有一个问题?我如何在回发后保持文本框光标?例如,我输入'ab‘。文本框光标位置将保留在最后一个字符'b‘

下面是我的代码

代码语言:javascript
运行
复制
<script language="javascript" type="text/javascript">


 function RefreshUpdatePanel() {
     __doPostBack('<%= TextBox1.ClientID %>', '');
 };


</script>
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
<ContentTemplate>

    <br />
    <br />
<asp:TextBox ID="TextBox1" runat="server" onkeyup="RefreshUpdatePanel();" 
            ontextchanged="TextBox1_TextChanged"></asp:TextBox>

     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
         <ContentTemplate>
             <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
         </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="TextBox1" />
    </Triggers>
    </asp:UpdatePanel>

    </ContentTemplate>
</asp:UpdatePanel>

我的后端代码

代码语言:javascript
运行
复制
 protected void Page_Load(object sender, EventArgs e)
    {
        //--If post back is txtSearach , then do search function--
        if (Page.Request.Form["__EVENTTARGET"] == TextBox1.ClientID)
        {
            this.Label1.Text = this.TextBox1.Text;

        }

    }

我还尝试在回发事件时放入textbox1.ocus(),但文本框光标位置将从第一个字符开始:(

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-15 13:14:39

您需要做的是处理表单(或文档)的onsubmit事件,然后将当前插入符号位置存储在隐藏字段中。在服务器上,读取隐藏字段值,然后生成启动脚本以设置插入符号位置。获取和设置插入符号位置的技巧-下面的链接将在这方面对你有所帮助:

http://parentnode.org/javascript/working-with-the-cursor-position/

jQuery Set Cursor Position in Text Area

Set keyboard caret position in html textbox

话虽如此,我还是建议你重新构建你的解决方案。您应该使用脚本服务(或页面方法)对服务器进行ajax调用以获取搜索结果,而不是对文本更改采用更新面板部分回发。它会更简单,更优雅,更高效。下面的链接应该可以让你开始:

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

http://www.codeproject.com/KB/aspnet/jQuery_To_WCF.aspx

http://msdn.microsoft.com/en-us/magazine/cc163499.aspx

票数 0
EN

Stack Overflow用户

发布于 2011-12-15 13:13:23

我强烈建议您查看一些可用的jquery插件。在google上快速搜索jquery autocomplete会返回大量的选项。这里有一个可以帮你入门的。

http://jqueryui.com/demos/autocomplete/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8515229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档