【问题标题】:jQuery Change Value of ASP.NET AJAX CascadingDropDownjQuery 更改 ASP.NET AJAX CascadingDropDown 的值
【发布时间】:2010-08-03 15:21:27
【问题描述】:

我可以使用 jQuery 来更改 CascadingDropDown 的值,但是导致目标控件的子下拉列表填充数据的触发事件永远不会发生:

$("#<%= ddlFromCompetition.ClientID %>").change(function() {
  var fromValue = $("#<%= ddlFromCompetition.ClientID %>").val();
  $("#<%= ddlToCompetition.ClientID %>").val(fromValue); // causes value to change, but child doesn't update
});

需要明确的是,ddlFromCompetitionddlToCompetition 不是父/子。它是ddlToCompetition 的子代,不会使用上述代码进行更新。当使用鼠标选择ddlToCompetition 时,其子下拉菜单会按预期更新。

我尝试调用$("#&lt;%= ddlToCompetition.ClientID %&gt;").change() 来强制触发事件,但它不起作用。

【问题讨论】:

    标签: asp.net jquery ajax cascadingdropdown


    【解决方案1】:

    你需要 trigger() 事件

    $("#<%= ddlToCompetition.ClientID %>").trigger('change');
    

    JQuery 文档:http://api.jquery.com/trigger/

    此外,因为 ddlFromCompetition 的第一个更改事件处理程序在 ddlFromCompetition 的上下文中触发,所以您应该能够更改...

    var fromValue = $("#<%= ddlFromCompetition.ClientID %>").val();
    

    到...

    var fromValue = $(this).val();
    

    【讨论】:

    • $(this).val() 有效(所选值更改)但不触发('change')。 ASP.NET AJAX CascadingDropDown 行为一定有一些特殊之处,它触发的事件导致它只响应鼠标手动更改事件。
    • 没用。我想我需要以某种方式调用 CascadingDropDown.raiseSelectionChanged()
    • 要尝试的另一件事是将所有 $ 符号更改为 jQuery,即 jQuery("#").trigger('change');除非你已经调用了 jQuery.noConflict();早些时候看到这个:docs.jquery.com/Using_jQuery_with_Other_Libraries
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多