Javascript asp.net dropdownlist避免在第一次按键时触发selectedindexchange
我有一个连接了SelectedindexChanged事件的asp.net dropdownlist,它根据所选值更改一些其他控件值 比如说,下拉列表包含国家列表。现在,用户通过单击鼠标打开下拉列表,然后用户可以输入选择印度,然后按enter键触发“SelectedIndexChanged”。这是正确/必需的行为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事件,导致更改,并将
但是,当用户通过按上一个控件上的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
}