【发布时间】:2015-06-11 22:17:55
【问题描述】:
我正在使用 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();
这一定是一件简单的事情,但我已经同意了..
【问题讨论】:
-
onchange 不起作用时是否有任何控制台错误?你确定你正确地标记了脚本吗?
-
我正在使用 FIrebug 进行调试,但没有收到任何错误消息..
-
尝试将 JS 更改为在 CSS 上运行而不是在 ID-
$('.form-control').change... 上运行吗? -
啊,是的,它适用于类名。那是什么意思??我应该使用类名还是有办法让它与 ID 名称一起使用?
-
那么Halcyon的解决方案是正确的(:我强烈建议您更改ClientIDMode,这样您就不必每次尝试解决一个元素时都走一遍。如果您需要有关如何处理的详细信息这样做,只要问它,我会回答。
标签: javascript c# jquery asp.net webforms