1

我正在使用来自http://stephenwalther.com/blog/archive/2008/09/07/asp-net-mvc-tip-41-creating-cascading-dropdown-lists-with-ajax.aspx的级联下拉菜单。

我需要为下拉列表设置一个值,并调用更改事件,以便级联下拉列表第一次看起来不是空白的。

但是更改事件没有通过尝试调用:

            $('#Country').trigger('change');
                       or
            $('#Country').change();

我如何调用此下拉列表的更改事件来触发级联下拉列表。

4

2 回答 2

0

对于我的级联下拉菜单,我使用jquery onbind

$('#Country').on('change', function () {
  //Do stuff here

});

$('#Country').bind('change', function () {
  //Do stuff here

});
于 2012-07-11T14:23:56.850 回答
0

您的下拉列表控件是服务器端(asp:dropdownlist 标记)还是客户端(选择标记)?

如果它们是服务器端的,则需要它为控件注入客户端 ID。这可能是缺少事件触发的原因。

在 ASP.NET 中,服务器端控件具有不同的生成客户端 ID(因此 ID 为“Country”的 DropDownList 将具有类似于 ct01_ct050_Country 的客户端 ID。

在这些情况下,您可以在运行时在标记上注入客户端 ID,使用:

$('#<% Country.ClientID %>').change(function() {
    //code here
});

在运行时,呈现的代码/标记最终将如下所示:

$('#ct01_ct050_Country').change(function() {
    //code here
});

避免客户端/服务器 ID 的另一个选项是将唯一的 CSS 类名称应用于控件并通过它进行选择:

标记:

<asp:DropDownList ID="Country" CssClass="countryDD" runat="server" />

和 jQuery:

$('select.countryDD').change(function () {
    //code here
});

这个答案适用于直接的 ASP.NET。我不确定它是否与 MVC 相关,因为我不使用该框架,但我认为它在概念或标记与客户端代码方面非常接近。

希望这可能会有所帮助...

于 2010-01-15T21:15:12.890 回答