asp.net下拉列表避免在第一次击键时触发selectedindexchange

时间:2017-04-14 20:47:44

标签: javascript c# jquery asp.net dropdown

我有一个asp.net下拉列表,其中连接了SelectedindexChanged事件,它根据所选值更改了一些其他控件值。

说,下拉列表包含国家/地区列表。现在,用户通过单击鼠标打开下拉列表,然后用户可以键入In以选择India,然后按Enter键以激活“SelectedIndexChanged”。这是正确/必需的行为。

然而,当用户通过按下前一个控件上的选项卡并开始输入来到达此下拉列表时,请说出I(打算键入IN以选择印度),它会在第一次击键时触发SelectedIndexChanged事件(I)导致更改并将国家/地区设置为冰岛。我们可以避免这个吗?或者在焦点或第一次按键时打开下拉菜单。或者其他一些想法?

1 个答案:

答案 0 :(得分:0)

您可以使用一种方法来解决此问题,尽管有些模糊,但SQL Server上有<asp:Button>。您将下拉事件移动到按钮display: none;,并在下拉列表失去焦点时使用JavaScript触发。

<强>的jQuery

OnClick

ASP

$("#dropdown").focusout(function() {          //When dropdown loses focus
    var v = $(this).val();
    if (v.length) {                           //If an item is selected
        $("#btnHidden").trigger("click");     //Trigger hidden button click
    }
});

<强> C#

<asp:DropDownList runat="server" ClientIDMode="Static" ID="dropdown" AutoPostBack="false">
    <asp:ListItem text="Select something..." val=""></asp:ListItem>
    <asp:ListItem text="Choice One" val="1"></asp:ListItem>
    <asp:ListItem text="Choice Two" val="2"></asp:ListItem>
</asp:DropDownList>

<asp:Button runat="server" ClientIDMode="Static" ID="btnHidden" CssClass="hide" OnClick="btnHidden_Click"></asp:Button>