【问题标题】:How to show and hide Div by mutiple Select form after submission提交后如何通过多个Select表单显示和隐藏Div
【发布时间】:2021-08-31 15:31:23
【问题描述】:

我有两个带有提交按钮的选择表单,例如,我需要获取所选值的结果

首先选择具有颜色选项的表单,然后选择包含其他内容的表单。

我有一些物品作为 div....红花,红鱼。

如果我从第一种形式中选择红色,它会显示红色值 div,而在第二种形式中,如果我选择花朵,它应该只显示红色花朵,但它会显示红色值下的所有内容。只有当我提交搜索按钮时,所有这些都必须起作用。 我在下面附上了jsfiddle。 代码:

$(document).ready(function(){
    $("select").change(function(){
        $(this).find("option:selected").each(function(){
            var optionValue = $(this).attr("value");
            if(optionValue){
                $(".box").not("." + optionValue).hide();
                $("." + optionValue).show();
            } else{
                $(".box").hide();
            }
        });
    }).change();
});
.box{
        color: #fff;
        padding: 20px;
        display: none;
        margin-top: 20px;
    }
    .red{ background: #ff0000; }
    .green{ background: #228B22; }
    .blue{ background: #0000ff; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
      <div class="col-5">
        <select class="form-control">
            <option value="all">All</option>
            <option value="red">Red</option>
            <option value="green">Green</option>
            <option value="blue">Blue</option>
        </select>
      </div>
      <div class="col-5">
        <select class="form-control">
            <option value="all">All</option>
            <option value="flower">flower</option>
            <option value="fish">fish</option>
            <option value="toy">toy</option>
        </select>
      </div>
      <div class="col-2">
        <button id="search" class="btn btn-primary w-100">Search</button>
      </div>
      </div>
    <div class="red all flower box">Red flower</div>
    <div class="red all fish box">red fish</div>
    <div class="green all toy box">green toy</div>
    <div class="blue all toy box">blue toy</div>
    <div class="blue all flower box">blue flower</div>

Jsfiddle:

https://jsfiddle.net/JOHN_748/v846oeab/1/

【问题讨论】:

  • 您已经很好地描述了您的代码,但您面临的具体问题是什么?
  • 如果我从我的第一个选择表单中选择一个选项意味着它显示正确的值但是当我对我的第二个选择表单进行更改时它没有正确显示。请检查我的小提琴输出,你会很好地理解我的问题
  • 需要对新值stackoverflow.com/questions/45722487/…做change事件

标签: javascript html jquery css


【解决方案1】:
  1. 获取选择的值,即您要查找的类
  2. 切换具有这两个类的框

如果你有更多的选择标准,我们应该循环,但这里我们只看class1和class2

$(function() {
  const $sels = $("select");
  const $boxes = $(".box");
  $("#search").on("click", function() {
    const vals = $sels.map(function() { return this.value }).get()
    $boxes.each(function() { 
      const show = $(this).hasClass(vals[0]) && $(this).hasClass(vals[1]);
      $(this).toggle(show) 
    });
  }).click();
});
.box {
  color: #fff;
  padding: 20px;
  display: none;
  margin-top: 20px;
}

.red {
  background: #ff0000;
}

.green {
  background: #228B22;
}

.blue {
  background: #0000ff;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
  <div class="col-5">
    <select class="form-control">
      <option value="all">All</option>
      <option value="red">Red</option>
      <option value="green">Green</option>
      <option value="blue">Blue</option>
    </select>
  </div>
  <div class="col-5">
    <select class="form-control">
      <option value="all">All</option>
      <option value="flower">flower</option>
      <option value="fish">fish</option>
      <option value="toy">toy</option>
    </select>
  </div>
  <div class="col-2">
    <button id="search" class="btn btn-primary w-100">Search</button>
  </div>
</div>
<div class="red all flower box">Red flower</div>
<div class="red all fish box">red fish</div>
<div class="green all toy box">green toy</div>
<div class="blue all toy box">blue toy</div>
<div class="blue all flower box">blue flower</div>

【讨论】:

  • 不,如果我的输入是(红色,花),那么我希望我的输出单独作为红色花 div。但在输出蓝花中也有。
  • 谢谢@mplungjan 兄弟 :)
  • 嘿,我如何为您的方法实现 onclick 方法,我想在单击搜索按钮后获得结果。你能告诉我吗!
  • 微不足道。也许看看 jQuery 网站?查看更新
  • 好的!工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多