如何在jquery中启用和禁用下拉列表值

时间:2014-06-17 06:59:08

标签: javascript jquery html drop-down-menu

这是脚本

$('#first').change(function(){

    switch ($(this).val())
    {
        case '1st':
            $('.1st').show();
            $('.2nd').hide();
            break;

        case '2nd':
            $('.1st').hide();
            $('.2nd').show();
            break;

        case '3rd':
            $('.3rd').hide();
            $('.3rd').show();
            break;

        case 'none':
            $('.1st').show();
            $('.2nd').show();
            break;
    }
});

http://jsfiddle.net/8ZVSu/3/

在第一次下拉列表中,All, Edit, Delete, Modify被给出。我需要这样的..

  1. 如果我在第一个下拉列表中点击All,则应在第二个下拉菜单中显示All,051,052,111,123,222,444,555,777,888,911,999

  2. 如果我在第一个下拉列表中点击Edit,则会显示 第二次下拉列表中All,051,052,111,123,222,444,555,777,888,911,999

  3. 如果我在第一个下拉列表中点击Delete,则只能显示 第二次下拉列表中All

  4. 如果我在第一个下拉列表中点击Modify,则只能显示 第二次下拉列表中All

  5. 我在这里几乎没有疑问。

3 个答案:

答案 0 :(得分:2)

试试这个:

$('#first').change(function(){
    $('#second option').hide(); // hide all options
    switch ($(this).val())
    {
        case '1st':
            $('.1st').show();
            break;

        case '2nd':
            $('.2nd').show();
            break;

        case '3rd':
            $('.3rd').show();
            break;

        case 'none':
           // show all options except for delete and modify
           $('#second option').not('.3rd, .2nd').show();
            break;
    }
});

Working JSFiddle

答案 1 :(得分:1)

<强> Demo  在您的上下文中,您的第一个下拉值,第二个下拉类彼此之间具有关系。所以使用this.value来获取所选元素

$('#first').change(function () {

    if (this.value == "none") {
        $("#second option").not(".2nd,.3rd").show();
    } else {
        $("#second option").hide();
        $("." + this.value).show();
    }


});

答案 2 :(得分:0)

双向:

  1. 您需要4秒钟选择,在您更改第一个下拉菜单时显示其中一个。

  2. 使用js模板生成第二个下拉动态。

  3. 无法直接在Chrome中显示或隐藏<option>