首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据下拉列表中选定的值隐藏控件并显示新的div

如何根据下拉列表中选定的值隐藏控件并显示新的div
EN

Stack Overflow用户
提问于 2016-11-04 12:19:03
回答 3查看 498关注 0票数 0

我有一个有三个控件的表单。使用这三个控件加载Te页面。其中一个控件是由五个项填充的拖放框。每个选择都有自己的控件要显示。我已经隐藏了所有五个div,并将显示根据选定的值。

  1. 窗体将加载三个控件。
  2. 从下拉列表中选择一个值
  3. 隐藏字段,并根据选定的值显示窗体/控件
  4. 当您更改选定的值时,它必须隐藏您以前的选择。
  5. 这必须适用于下拉列表中的任何选定值。

我已经编写了java脚本函数,但它没有隐藏加载的控件,而是使用该选择的控件显示新窗体或div。

问题:如何根据下拉列表中的选择隐藏和显示div?

我试过这个示例

下面是我的代码;

Java脚本

代码语言:javascript
运行
复制
<script type="text/javascript">
        $(document).ready(function () {
            $('#ddlControls').on('change', function () {
                if (this.value == 'Users') {
                    $("#divUsers").show();
                    alert("Users");
                }

                else if (this.value == 'Orders') {
                    $("#divUsers").hide();
                    $("#divOrders").show();
                    alert("orders here");
                }
                else if (this.value == 'Contractors') {
                    $("#divOrders").hide();
                    $("#divContractors").show();
                    alert("Contractors here");
                }
                else if (this.value == 'Permanets') {
                    $("#divContractors").hide();
                    $("#divPermanets").show();
                    alert("Permanets here");
                }
                else if (this.value == 'Reports') {
                    $("#Permanets").hide();
                    $("#divReports").show();
                    alert("Reports here");
                }
                else {
                    $("#divReports").hide();
                }
            });
        });
    </script>

查看页面

代码语言:javascript
运行
复制
<section>
<div class="row">
    <fieldset class="fieldsetStyle">
        <form role="form">
            <div class="box-body">
                <div class="col-md-5" id="divContainer">

                    <div class="form-group">
                        <label for="ddlControls">Report Category :</label>
                        <select class="form-control" id="ddlControls">
                            <option value="-1">--Select--</option>
                            <option id="Users" value="Users">All Users</option>
                            <option id="Orders" value="Orders">All Orders</option>
                            <option id="Contractors" value="Contractors">All Contractors</option>
                            <option id="Permanets" value="Permanets">All Permanets</option>
                            <option id="Reports" value="Reports">All Reports</option>
                        </select>
                    </div>

                    <div class="form-group">
                        <label for="txt1">Report Number</label>
                        <input type="text" class="form-control" id="txt1">
                    </div>

                    <div class="form-group">
                        <label for="txt2">Order Number:</label>
                        <input type="text" class="form-control" id="txt2">
                    </div>

                    <!--Here are all my hidded div that i want to show based on the selection of report catergory-->
                    <div class="hidden" id="divUsers">
                        <h2>I want to show this div for Users</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div class="hidden" id="divOrders">
                        <h2>I want to show this for Orders</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div class="hidden" id="divContractors">
                        <h2>I want to show this div for Contractors</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div class="hidden" id="divPermanet">
                        <h2>I want to show this div for Permanet</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div class="hidden" id="divReport">
                        <h2>I want to show this div for Report</h2>
                        <!--I will have more controls here-->
                    </div>
                </div>
            </div>
        </form>
    </fieldset>
    </div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-04 12:34:34

试试看这个例子,

代码语言:javascript
运行
复制
$(document).ready(function () {
    function hideAll(){
        $("#divUsers, #divOrders, #divContractors, #divPermanet, #divReport").hide();
      }
  
  hideAll();
  
            $('#ddlControls').on('change', function () {            	
                    hideAll();
              
                if (this.value == 'Users') {
                    $("#divUsers").show();
                    alert("Users");
                }

                else if (this.value == 'Orders') {
                    $("#divOrders").show();
                    alert("orders here");
                }
                else if (this.value == 'Contractors') {
                    $("#divContractors").show();
                    alert("Contractors here");
                }
                else if (this.value == 'Permanets') {
                    $("#divPermanet").show();
                    alert("Permanets here");
                }
                else if (this.value == 'Reports') {
                    $("#divReport").show();
                    alert("Reports here");
                }
            });
        });
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="row">
    <fieldset class="fieldsetStyle">
        <form role="form">
            <div class="box-body">
                <div class="col-md-5" id="divContainer">

                    <div class="form-group">
                        <label for="ddlControls">Report Category :</label>
                        <select class="form-control" id="ddlControls">
                            <option value="-1">--Select--</option>
                            <option id="Users" value="Users">All Users</option>
                            <option id="Orders" value="Orders">All Orders</option>
                            <option id="Contractors" value="Contractors">All Contractors</option>
                            <option id="Permanets" value="Permanets">All Permanets</option>
                            <option id="Reports" value="Reports">All Reports</option>
                        </select>
                    </div>

                    <div class="form-group">
                        <label for="txt1">Report Number</label>
                        <input type="text" class="form-control" id="txt1">
                    </div>

                    <div class="form-group">
                        <label for="txt2">Order Number:</label>
                        <input type="text" class="form-control" id="txt2">
                    </div>

                    <!--Here are all my hidded div that i want to show based on the selection of report catergory-->
                    <div id="divUsers">
                        <h2>I want to show this div for Users</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div id="divOrders">
                        <h2>I want to show this for Orders</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div id="divContractors">
                        <h2>I want to show this div for Contractors</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div id="divPermanet">
                        <h2>I want to show this div for Permanet</h2>
                        <!--I will have more controls here-->
                    </div>

                    <div id="divReport">
                        <h2>I want to show this div for Report</h2>
                        <!--I will have more controls here-->
                    </div>
                </div>
            </div>
        </form>
    </fieldset>
    </div>

票数 0
EN

Stack Overflow用户

发布于 2016-11-04 12:28:20

问题是,您需要隐藏所有其他div,而不仅仅是一个您正在做的。

您可以通过向每个显示div应用一个类来解决这个问题,将隐藏类添加到该类的任何元素中,然后使所选的div可见。

或者,您可以在事件侦听器中手动隐藏每种情况下的所有div,但这是不必要的后悔。

票数 0
EN

Stack Overflow用户

发布于 2016-11-04 12:32:23

您肯定应该在所有需要隐藏的div中添加一个类。这允许您同时隐藏所有这些信息,然后显示正在被选中的对象。您的一些div没有显示的原因是由于您的JS中的排字。这里是一个工作小提琴。

工作JavaScript:

代码语言:javascript
运行
复制
$(function () {
    $('#ddlControls').on('change', function () {
         $('.select-div').hide();
         if (this.value == 'Users') {
             $("#divUsers").show();
             alert("Users");
          }
          else if (this.value == 'Orders') {
              $("#divOrders").show();
              alert("orders here");
          }
          else if (this.value == 'Contractors') {
              $("#divContractors").show();
              alert("Contractors here");
          }
          else if (this.value == 'Permanets') {
              $("#divPermanet").show();
              alert("Permanets here");
          }
          else if (this.value == 'Reports') {
              $("#divReport").show();
              alert("Reports here");
          }
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40422513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档