在下拉列表更改时调用 Javascript 函数

Call a Javascript function on dropdownlist change

我正在使用 Visual Studio 2013 WebForms,我正在尝试在更改下拉列表 (Asp:DropDownList) 时调用 javascript 函数。 但是我对这种行为完全感到困惑。有人可以告诉我出了什么问题吗?

这有效

 <asp:DropDownList ID="ddlList" CssClass="form-control" onchange="alert(1)"  runat="server"></asp:DropDownList>

但是这没有任何反应

$(document).ready(function () {
    function test() {
        alert(1);
    }
});

    <asp:DropDownList ID="ddlList" CssClass="form-control" onchange="test()"  runat="server"></asp:DropDownList>

这也行不通

$(document).ready(function () {
    $('#ddlList').change(function(){
        alert(1);
    });
});

<asp:DropDownList ID="ddlList" CssClass="form-control" runat="server"></asp:DropDownList>

hide() 函数工作正常所以我相信 jquery 本身工作。

$("#divTextbox").hide();

这一定是一件简单的事情,但我已经把它堆起来了..

您需要修改选择器

$("#<%=ddlList.ClientID%>").change(function() {
    // do stuff here...
});

您拥有的 jQuery 选择器以服务器控件的 ID 为目标,但是当服务器发回响应时,该 ID 会变成一些垃圾,例如 ct100_ddlList。您还可以将 ClientIDMode 设置为服务器控件上的状态。

如果您想在 javascript.

中使用完全相同的名称,您可以为 ddlList 使用 ClientIDMode="Static"