JQuery ASP.NET .change事件未触发

时间:2013-01-24 15:08:24

标签: jquery asp.net onchange

我知道这个问题已经被提了很多,但似乎没有什么对我有用。我读了很多问题和答案。

我正在使用JQuery事件来处理ASP.NET控件的事件,但事件不会触发。

这是我尝试过的:

我的DropDownList:

<asp:DropDownList ID="List_ValueStream" runat="server" Width="195px" />

我尝试将事件添加到DropDownList,所有这些都是单独测试的:

在:

    <script src="http://code.jquery.com/jquery.min.js" type="text/javascript">
          ...
    </script>

/

    $(document).ready(function () {
        $("#<%=List_ValueStream.ClientID%>").change(function () {
            alert('1 Handler for .change() called.');
        });
    });

/

    $(document).ready(function () {
        $("#List_ValueStream").change(function () {
            alert('2 Handler for .change() called.');
        });
    });

/

    $(document).ready(function () {
        $("#List_ValueStream").on('change', function () {
            alert('3 Handler for .change() called.');
        });
    });

/

    $("#<%=List_ValueStream.ClientID%>").change(function () {
          alert('4 Handler for .change() called.');
    });

/

    $("#List_ValueStream").change(function () {
        alert('5 Handler for .change() called.');
    });

2 个答案:

答案 0 :(得分:6)

你在这两行之间写过脚本吗?然后在sperate脚本标记中编写脚本,如下所示

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript">

</script>


<script src="http://code.jquery.com/jquery.min.js" type="text/javascript">
</script>

<script type="text/javascript">
 $(document).ready(function () {
    $("#<%=List_ValueStream.ClientID%>").change(function () {
        alert('1 Handler for .change() called.');
    });
});
</script>

我认为只有这可能是原因。另外一点也没关系。
如果您使用的是asp.net 4.0或更高版本,则可以利用ClientIDMode=static。它不会改变你控制的id,如下所示

 <asp:TextBox ID="txtEcho2" runat="server" ClientIDMode="Static" /> 

所以你可以摆脱ClientId

答案 1 :(得分:4)

你可以像这样使用并且运作良好

<asp:DropDownList ID="List_ValueStream" runat="server" Width="195px" onchange="youfunction();"/>