如果要想给 DropDownList 服务器控件添加客户端下拉事件,我们可以强制给它添加 onchange 事件,尽管在控件中没有这个方法的提示。添加完这个事件还不能达到目的,还要设置 AutoPostBack 属性为 false,不让它回发后台事件。

<head runat="server">
  <title>DropDownList添加客户端下拉事件</title>
  <script type="text/javascript">
    function getDropDownList() {
      var ddl1 = document.getElementById("<%=ddl1.ClientID%>");
      var text = ddl1.options[ddl1.options.selectedIndex].text; //获取text值
      var value = ddl1.value;                  //获取value值
      alert("Text:" + ddl1.options[ddl1.options.selectedIndex].text + ", Value:" + ddl1.value);
    }
  </script>
</head>
<body>
<form id="form1" runat="server">
  <asp:DropDownList ID="ddl1" runat="server" AutoPostBack="false" onchange="getDropDownList();">
    <asp:ListItem Text="T1" Value="V1" Selected="True"></asp:ListItem>
    <asp:ListItem Text="T2" Value="V2"></asp:ListItem>
    <asp:ListItem Text="T3" Value="V3"></asp:ListItem>
  </asp:DropDownList>
</form>
</body>
</html>
总结一下,也就是说,要想给DropDownList下拉框添加客户端下拉事件,必须做两步工作,一是添加强制onchange事件,二是把 AutoPostBack属性设为false,就是这么简单!