根据另一个选择的值隐藏一个选择

Hide a select based on the value of another select

本文关键字:选择 一个 另一个 隐藏      更新时间:2023-09-26

我正在努力实现使1个选择项的可见性依赖于另一个1。我想我可以用这样的javascript做到这一点:

头:

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
    jQuery(document).ready(function (){
        jQuery("#filepermissiontype").change(function() {           
            if (jQuery(this).val() = "global") {
                jQuery("#filepermissioncompanyid").hide();
            }else{
                jQuery("#filepermissioncompanyid").show();
            } 
        });
    });
    </script>

要素:

    <select id="filepermissiontype" data-placeholder="..." name="filepermissiontype"  class="select" value="<?php echo set_value('filepermissiontype'); ?>">
<option></option>
<option value="global">Everyone</option>
<option value="company">Company</option>
<option value="companyandchildren">Company & children</option>                                          
</select>
<select id="filepermissioncompanyid" data-placeholder="..." name="filepermissioncompanyid"  class="select" value="<?php echo set_value('filepermissioncompanyid'); ?>">
<option></option>
<option value="1">Corp 1</option>
<option value="2">Corp 2</option>
<option value="2">Corp 3</option>                                           
</select>

这样,我预计当我在第一次选择中选择全局时,第二次选择会消失,但这并没有发生。我做错了什么?

感谢

当您打算使用比较运算符时,您使用的是赋值运算符。简单的错误。更改为…

if (jQuery(this).val() == "global"){...}

小错误'='是赋值,==用于比较

     jQuery(document).ready(function (){
     jQuery("#filepermissiontype").change(function() {           
     if (jQuery(this).val() == "global") {
             jQuery("#filepermissioncompanyid").hide();
        }else{
            jQuery("#filepermissioncompanyid").show();
        } 
    });
});

您的比较不正确:

if(jQuery(this).val() = "global"){...}

应该是

if(jQuery(this).val() == "global"){...}

if(jQuery(this).val() === "global"){...}

请记住,对于等式==或严格等式=== ,赋值=比较不同

编辑:根据下面的评论,OP在获取选择选项的值时遇到问题。尝试执行以下操作:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
    jQuery(document).ready(function (){
        jQuery("select[id=filepermissiontype]").change(function() {           
            if (jQuery(this).val() = "global") {
                jQuery("#filepermissioncompanyid").hide();
            }else{
                jQuery("#filepermissioncompanyid").show();
            } 
        });
    });
</script>

请参阅此堆栈溢出答案作为将来的参考。