从MVC中的一个下拉列表中更改(多个)下拉列表的值

时间:2010-03-23 17:53:30

标签: jquery asp.net-mvc

我有一个MVC页面,在表单中有一些控件。我需要帮助的部分: 我在列表中有一堆下拉列表。全部动态命名(drop {0},其中{0}是id (真的,它只是一个柜台:1,2,3等))。在列表的顶部,我想要另一个下拉列表,它会在更改时更新所有下拉列表。我已经用复选框做了类似的事情(检查一个,所有都被检查等)所以我认为这可以完成,希望就这么简单。我更喜欢它在客户端,所以一旦提交表单,新值将被添加/更新到数据库。

编辑:所有下拉列表的值都是静态的。它们都是1-50的列表,表示我需要为给定记录生成的卡数。

这就是我执行复选框的方式:

$("#chkSelectAll").click(function() {
      $(".checkbox").attr('checked', this.checked);
 });

关于从哪里开始的任何想法?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用starts with选择器:

$('#somedropdown').change(function() {
    // when the value of the dropdown changes loop through other dropdowns
    // whose id begins with "drop"
    $('select[id^=drop]').each(function() {
        // do something with the dropdown
    });
 });

答案 1 :(得分:0)

我知道您希望使用jQuery设置其他下拉列表的选择。如果是这样,那就这样做....

function onSelectChange(){
    var stext = $("#dropdown0 option:selected").val();
    switch (stext) {
    case "Value1":
        $("#dropdown1 > option[value='Good']").attr('selected','selected');
        $("#dropdown2 > option[value='9000']").attr('selected','selected');
        break;
    case "Value2":
        $("#dropdown1 > option[value='Better']").attr('selected','selected');
        $("#dropdown2 > option[value='34000']").attr('selected','selected');
        break;
    case "Value3":
        $("#dropdown1 > option[value='Good']").attr('selected','selected');
        $("#dropdown2 > option[value='1000']").attr('selected','selected');
        break;
    case "Value4":
        $("#dropdown1 > option[value='Better']").attr('selected','selected');
        $("#dropdown2 > option[value='9000']").attr('selected','selected');
    }
}

工作示例:http://jsbin.com/odabe

答案 2 :(得分:0)

一种可能的解决方案(显然很多):

        $("#ddlQuantity").change(function() {
            $(".quantity").attr('selectedIndex', this.selectedIndex);
        });

由于.quantity类适用于所有创建的对象,因此更改“class”的.attr工作正常。