1

如何将下拉列表的选定值设置为另一个的选定值?

下面的代码显示了如何正确完成此操作。

ASPX

<asp:DropDownList ID="ddl1" RunAt="Server" DataValueField="ID" DataTextField="ID" AppendDataBoundItems="true"/>
<asp:DropDownList ID="ddl2" RunAt="Server" DataValueField="ID" DataTextField="TEXT" AppendDataBoundItems="true"/>

查询

$("#<%= ddl1.ClientID %>").change(function() {
    var Code = $(this).val();
    $("#<%= ddl2.ClientID %>").val(Code);
});

然而,当使用jQuery Mobile时,DataTextField 被呈现为一个跨度标签,上面的代码不会更新。

问题

如何修改上述代码以适应这种情况?

http://jsfiddle.net/E28WW/

4

2 回答 2

1

存储第一个选择菜单中的值,然后在第二个选择菜单中查找它。使用选择它 .prop('selected', true);,然后调用.selectmenu('refresh')

演示

$(document).on('pageinit', function () {
  $(document).on('change', '#ddl1', function () {
    var selected = $(this).val();
    $('#ddl2 option[value="' + selected + '"]').prop('selected', true);
    $('#ddl2').selectmenu('refresh');
  });
});

我使用pageinit了相当于.ready(). 这是 jQM 的一项特殊活动。

于 2013-10-04T10:37:02.320 回答
0

您是否检查过该change函数实际上正在被调用。你提供的脚本是脚本标签的全部内容吗?

该函数在加载之前不会绑定到事件,使用$(document).ready();会将事件绑定到控件。

$(document).ready(function() {
    $("#<%= ddl1.ClientID %>").change(function() {
        var Code = $(this).val();
        $("#<%= ddl2.ClientID %>").val(Code);
    });
});
于 2013-10-04T09:36:50.017 回答