如果选择了另一个选择菜单的值,则显示隐藏的选择菜单

时间:2016-10-26 15:09:06

标签: javascript jquery html css twitter-bootstrap

我是jQuery和javaScript的新手。我正在使用bootstrap。我有一个可见的选择菜单和两个隐藏的其他选择菜单。我想显示用户选择的隐藏选择菜单ID" TV"从可见的选择菜单选项。如果他们从可见选择菜单中选择任何其他值选项,我需要显示一个他们可以解释的简单文本框。在线研究之后,我尝试使用一些js来做,但它没有用。下面是我的代码,这是我的jsfiddle链接:https://jsfiddle.net/nx6cc1Lc/

HTML:

<div class="hear-from">
      <div class="selects-4 col-xs-12">
          <label for="heard_tv">Where did you hear about us from?</label>
                <select id="heard_tv" class="form-control selectTV" name="heard_tv">
                     <option>--Choose Option--</option>
                     <option value="TV">TV Commercial</option>
                     <option value="Radio">Radio Advertisement-Other</option>
                     <option value="OT">Other</option>
                </select>
     </div>
     <div class="selects-5 col-xs-6 hidden">
                <select id="heard_from_station" class="form-control selectStation" name="heard_from_station">
                     <option>--Choose Station--</option>
                     <option value="TV:ABC">ABC News</option>
                     <option value="TV:TWCNews">New York 1 - TWC News</option>
                     <option value="TV:BBC">BBC America</option>
                     <option value="TV:CNBC">CNBC</option>
                     <option value="TV:CNN">CNN</option>
                     <option value="TV:Fox News">FOX News</option>
                     <option value="TV:Fox Business">FOX Business</option>
                     <option value="TV:TWCNews">Time Warner News</option>
                     <option value="TV:HLN">Headline News</option>
                     <option value="TV:MSNBC">MSNBC</option>
                     <option value="TV:Other">Other</option>
                </select>
          </div>

          <div class="selects-6 col-xs-6 hidden">
                <select id="heard_from_provider" class="form-control selectProvider" name="heard_from_provider">
                     <option>--Choose Provider--</option>
                     <option value="TVP:ATT">AT & T</option>
                     <option value="TVP:Comcast">Comcast</option>
                     <option value="TVP:Cablevision">Cablevision</option>
                     <option value="TVP:Charter">Charter Comm.</option>
                     <option value="TVP:Cox">Cox Comm.</option>
                     <option value="TVP:DirectTV">DirectTV</option>
                     <option value="TVP:Dish">Dish Network</option>
                     <option value="TVP:TimeWarner">Time Warner Cable</option>
                     <option value="TVP:VerFiOS">Verizon FiOS</option>
                     <option value="TVP:Antenna">Over the Air / Antenna</option>
                     <option value="TVP:Other">Other TV Provider</option>
                 </select>
             </div>

     </div>

使用Javascript:

// show tv station and provider menus if TV selected
    $(document).ready(function(){
        $('#heard_tv').on('change', function() {
          if ( this.value === "TV")
          //.....................^.......
          {
            $("#heard_from_station").removeClass('hidden');
            $("#heard_from_provider").removeClass('hidden');
          }
          else
          {
            $('#heard_from_station').removeClass().addClass('hidden');
            $('#heard_from_provider').removeClass().addClass('hidden');
          }

        });

    });

3 个答案:

答案 0 :(得分:1)

更新您的脚本,如下所示。

Platform.setImplicitExit(false);

由于你的html包含&#34;隐藏&#34;在父元素&#34; .parent()&#34;上的类,您需要在父元素上添加/删除类。或者,您也可以为父元素提供ID,并直接在脚本中使用这些ID,而不使用&#34; .parent()&#34;。

答案 1 :(得分:0)

为此使用jquery的show()和hide()。下面是你的问题的代码部分

<script src="jquery.min.js"></script>
<script src="sample.js"></script>

   <div class="hear-from">
                                            <div class="selects-4 col-xs-12">
                                                <label for="heard_tv">Where did you hear about us from?</label>
                                                    <select id="heard_tv" class="form-control selectTV" name="heard_tv">
                                                        <option>--Choose Option--</option>
                                                        <option value="TV">TV Commercial</option>
                                                        <option value="Radio">Radio Advertisement-Other</option>
                                                        <option value="OT">Other</option>
                                                     </select>
                                            </div>
                                            <div class="selects-5 col-xs-6" style="display:none">
                                                    <select id="heard_from_station" class="form-control selectStation" name="heard_from_station">
                                                        <option>--Choose Station--</option>
                                                        <option value="TV:ABC">ABC News</option>
                                                        <option value="TV:TWCNews">New York 1 - TWC News</option>
                                                        <option value="TV:BBC">BBC America</option>
                                                        <option value="TV:CNBC">CNBC</option>
                                                        <option value="TV:CNN">CNN</option>
                                                        <option value="TV:Fox News">FOX News</option>
                                                        <option value="TV:Fox Business">FOX Business</option>
                                                        <option value="TV:TWCNews">Time Warner News</option>
                                                        <option value="TV:HLN">Headline News</option>
                                                        <option value="TV:MSNBC">MSNBC</option>
                                                        <option value="TV:Other">Other</option>
                                                     </select>
                                            </div>

                                            <div class="selects-6 col-xs-6" style="display:none">
                                                    <select id="heard_from_provider" class="form-control selectProvider" name="heard_from_provider">
                                                        <option>--Choose Provider--</option>
                                                        <option value="TVP:ATT">AT & T</option>
                                                        <option value="TVP:Comcast">Comcast</option>
                                                        <option value="TVP:Cablevision">Cablevision</option>
                                                        <option value="TVP:Charter">Charter Comm.</option>
                                                        <option value="TVP:Cox">Cox Comm.</option>
                                                        <option value="TVP:DirectTV">DirectTV</option>
                                                        <option value="TVP:Dish">Dish Network</option>
                                                        <option value="TVP:TimeWarner">Time Warner Cable</option>
                                                        <option value="TVP:VerFiOS">Verizon FiOS</option>
                                                        <option value="TVP:Antenna">Over the Air / Antenna</option>
                                                        <option value="TVP:Other">Other TV Provider</option>
                                                     </select>
                                            </div>

                                        </div>

 <script>   $(document).ready(function(){
        $('#heard_tv').on('change', function() {
          if ( this.value === "TV")
          //.....................^.......
          {
            $(".selects-5").show();
            $(".selects-6").show();
          }
          else
          {
            $('.selects-5').hide();
            $('.selects-6').hide();
          }

        });

    });</script> 

答案 2 :(得分:0)

问题是包含辅助选择菜单的div标签是隐藏的,而不是选择菜单本身 - 即使这样,您的脚本也会尝试从选择菜单中删除该类。所以有很多方法可以解决这个问题。

解决此问题的一种方法是将隐藏的类应用于您的选择菜单,而不是div标记。

<div class="selects-5 col-xs-6">
    <select id="heard_from_station" class="form-control selectStation hidden" name="heard_from_station">
                 ...
    </select>
</div>

<div class="selects-6 col-xs-6">
    <select id="heard_from_provider" class="form-control selectProvider hidden" name="heard_from_provider">
                 ...
    </select>
</div> 
相关问题