我知道这个问题已经被问了很多次,但似乎没有什么对我有用。我读过很多问题和答案。
我使用 JQuery 事件来处理 ASP.NET 控件的事件,但该事件不会触发。
这是我尝试过的:
我的下拉列表:
<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.');
});
最佳答案
你在这两行之间写过脚本吗?然后在单独的脚本标记中编写脚本,如下所示
<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>
我想只能是这个原因了。其他方面都可以。
您可以利用ClientIDMode=static如果您使用的是 asp.net 4.0 或更高版本。它不会改变你的控件的ID,如下
<asp:TextBox ID="txtEcho2" runat="server" ClientIDMode="Static" />
这样你就可以摆脱 ClientId
关于JQuery ASP.NET .change 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14504489/