Javascript asp.net dropdownlist避免在第一次按键时触发selectedindexchange

Javascript asp.net dropdownlist避免在第一次按键时触发selectedindexchange,javascript,c#,jquery,asp.net,dropdown,Javascript,C#,Jquery,Asp.net,Dropdown,我有一个连接了SelectedindexChanged事件的asp.net dropdownlist,它根据所选值更改一些其他控件值 比如说,下拉列表包含国家列表。现在,用户通过单击鼠标打开下拉列表,然后用户可以输入选择印度,然后按enter键触发“SelectedIndexChanged”。这是正确/必需的行为 但是,当用户通过按上一个控件上的tab键到达此下拉列表并开始键入,例如I(打算键入以选择印度),它会在第一次击键(I)时触发SelectedIndexChanged事件,导致更改,并将

我有一个连接了SelectedindexChanged事件的asp.net dropdownlist,它根据所选值更改一些其他控件值

比如说,下拉列表包含国家列表。现在,用户通过单击鼠标打开下拉列表,然后用户可以输入选择印度,然后按enter键触发“SelectedIndexChanged”。这是正确/必需的行为


但是,当用户通过按上一个控件上的tab键到达此下拉列表并开始键入,例如I(打算键入以选择印度),它会在第一次击键(I)时触发SelectedIndexChanged事件,导致更改,并将国家设置为冰岛。我们能避免这种情况吗?或者在焦点或第一次按键时打开下拉菜单。还是别的主意

您可以使用一种方法来解决此问题,尽管有点模糊,但它是一种带有
显示:无的
在上面。您可以将下拉列表事件移动到按钮的
OnClick
,并在下拉列表失去焦点时使用JavaScript触发该事件

jQuery

$("#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
    }
});
ASP

<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>
protected void btnHidden_Click(object sender, EventArgs e)
{
    //Do Dropdown Stuff
}