如何根据另一个Dropdown使用javascript更改下拉列表值?

时间:2012-12-28 11:36:31

标签: javascript asp.net cascadingdropdown

我的网页上有三个<select>下拉列表:成人儿童婴儿(想想航空公司预订网站)。< / p>

一般情况下, Adult 下拉列表中的选项编号为1-9, Child 下拉列表中的编号为0-8的选项和 Infant 下拉列表的编号为0-1。如果用户选择成人 4 ,则 Child 下拉列表可用数字应更改为反映0-5和婴儿下拉列表应更改为0-4。

我正在尝试使用javascript实现这一点,但一直陷入困境。很高兴在必要时提供更多信息 - 请告诉我您需要了解的内容。

这是我到目前为止所做的:

function MyApp(sender) {
    var ListBox1Id = '<%= ddl1.ClientID %>';
    var ListBox2Id = '<%= ddl2.ClientID %>';
    var ListBox3Id = '<%= ddl3.ClientID %>';

    var selectedIndex = document.getElementById(ListBox1Id).selectedIndex;
    var ii = document.getElementById(ListBox1Id).options[selectedIndex].value;
    var count = document.getElementById(ListBox1Id).length;

    if (ii != 0) {
        for (var k = 0; k <= count - ii; k++) {
            document.getElementById(ListBox2Id).value = k;
        }
    }
}

这是我在 Adult 下拉列表的onchange事件中调用的函数,我编写了用于显示 Child 下拉列表值的脚本< em>成人下拉列表的选择。

1 个答案:

答案 0 :(得分:0)

var ListBox1Id = '<%= ddl1.ClientID %>';
var ListBox2Id = '<%= ddl2.ClientID %>';
var ListBox3Id = '<%= ddl3.ClientID %>';

var count = $("#"+ListBox1Id+"option:selected").text();
var listbox2 = document.getElementById(ListBox2Id);

listbox2.empty();
for(var i=0; i++; i <= count){
listbox2.append(
    $('<option></option>').val(i).html(i)
);
}
var listbox3 = document.getElementById(ListBox3Id);

listbox3.empty();
for(var j=0; j++; j < count){
listbox3.append(
    $('<option></option>').val(j).html(j)
);
}

根据这个修改您的代码,如果需要,更改计数逻辑,它应该是好的..希望它有所帮助:)