【问题标题】:asp.net dropdownlist avoid firing selectedindexchange on first keystrokeasp.net 下拉列表避免在第一次击键时触发 selectedindexchange
【发布时间】:2017-04-14 20:47:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript c# jquery asp.net dropdown


    【解决方案1】:

    您可以用来解决这个问题的一种方法,尽管有点模糊,是一个带有display: none;<asp:Button>。您可以将下拉事件移动到按钮的 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: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>
    

    C#

    protected void btnHidden_Click(object sender, EventArgs e)
    {
        //Do Dropdown Stuff
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多