首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在下拉列表的键盘输入上停止自动返回

在下拉列表的键盘输入上停止自动返回
EN

Stack Overflow用户
提问于 2013-01-09 02:51:32
回答 2查看 1.4K关注 0票数 1

有没有办法延迟下拉列表的自动返回,直到列表真正失去焦点?我想接受来自键盘的输入,而不是在每次击键后返回页面。例如,以下面的代码为例:

代码语言:javascript
运行
复制
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem >Test1</asp:ListItem>
<asp:ListItem >Tst1</asp:ListItem>
<asp:ListItem >twotest</asp:ListItem>
</asp:DropDownList>

假设我想选择两个测试。我用Tab键切换到ddl并在键盘上输入'tw‘。但是,一旦输入“t”,页面就会自动回发,而“w”输入则会丢失。重置焦点实际上没有任何帮助,因为ddl认为'w‘是第一个输入。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-09 03:03:15

这似乎是不可能的。您必须移除AutoPostBack="true“,然后尝试另一种方法来执行回发。考虑以下解决方案:

当dropdown ddlCountry更改时,将调用函数dropdown来触发btnLoad click以执行回发。按钮btnLoad被放在更新面板中,这样页面就不会重新加载,您仍然可以将焦点放在下拉列表上。

代码语言:javascript
运行
复制
<script type="text/javascript">
    function ddlCountry_changed() {
        document.getElementById('<%= btnLoad.ClientID %>').click();
    }
</script>

Country:
<asp:DropDownList ID="ddlCountry" runat="server" onchange="ddlCountry_changed();">
    <asp:ListItem Text="Vietnam" Value="1"></asp:ListItem>
    <asp:ListItem Text="United State" Value="2"></asp:ListItem>
</asp:DropDownList>

<asp:UpdatePanel ID="updatePanel" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnLoad" style="display: none" runat="server" OnClick="btnLoad_OnClick" />
    </ContentTemplate>
</asp:UpdatePanel>
票数 0
EN

Stack Overflow用户

发布于 2013-07-10 08:50:36

这比仅仅处理模糊要复杂一点。您需要删除onchange属性(AutoPostBack="false"),以便可以进行键盘导航,并附加事件处理程序,当通过单击、模糊或按Enter键更改值时,这些事件处理程序将提交表单。

我遇到了同样的问题,并创建了一个插件来处理这个问题。查看https://github.com/bstruthers/AutoPostBack-Fix

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

https://stackoverflow.com/questions/14222005

复制
相关文章

相似问题

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