【问题标题】:Show and Hide Select Options显示和隐藏选择选项
【发布时间】:2014-11-23 19:09:52
【问题描述】:

我创建了一个非常基本的表单,它有 2 个下拉列表。

每个列表都包含相同的条目:

<option value='1234:0'>Closed</option>
<option value='4567:2'>Open</option>
<option value='6857:1'>Dead</option>
<option value='9856:1'>Alive</option>
<option value='0000:0'>Other</option>

如果选择了下拉列表 1 中的条目,则应从下拉列表 2 中删除该条目

如果在下拉列表 1 中选择了不同的条目,则应将其从下拉列表 2 中删除,并将原始条目返回到下拉列表 2

如果在下拉列表 1 中未选择任何内容,则所有选项都应显示在下拉列表 2 中。

我创建了一个FIDDLE,显示了我已经走了多远……还不是很远。

有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: php jquery select hide option


    【解决方案1】:

    试试这个

    $(function(){
    
        $('#test').change(function () {
    
            var selected = $(this).val();   
    
            $("#test2 option").show();
    
            $("#test2 option[value='" + selected + "']").hide();
    
        }); 
    
    }); 
    

    如果你想使用文字,你可以试试这个

    $(function(){
    
        $('#test').change(function () {
    
            var selected = $('option:selected', this).text();
    
            $("#test2 option").each(function(){
    
                if($(this).text() == selected) {
    
                    $(this).hide();
    
                } else {
    
                    $(this).show();
                }
    
            })
    
        }); 
    
    }); 
    

    【讨论】:

    • @Rocket 不客气。觉得有用的可以采纳哦
    • 也可以使用 text() 吗?
    【解决方案2】:

    由于每个选项的值相同,您可以使用value 属性在第二次选择中选择匹配项。

    $('form').on('change', 'select[name="test"]', function() {
        var selected = $(this).val();
        $("#test2 option").show();
        $("#test2 option[value='" + selected + "']").hide();
    });
    

    Demo

    【讨论】:

    • 选择'closed',然后选择另一个 - 'closed' 值应该被重置。它不是。第二个下拉菜单根本不隐藏任何值。
    • "现在第二个下拉菜单没有在第一个下拉菜单中隐藏值的问题仍然存在"这不是必需的
    猜你喜欢
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2012-03-24
    • 2014-05-28
    • 2013-02-24
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多