如何根据选择框选择显示隐藏的表单字段

时间:2016-12-09 14:43:33

标签: javascript forms bootstrap-form-helper

我想从第一个下拉列表中选择顶部打开c92下拉列表 当我选择低以打开带引导程序的c97下拉列表时。

我不想在隐藏列表之间休息。有什么想法吗?

<div class="form-group c86 required" data-cid="c86">
   <label class="control-label" for="c86">Product</label>
   <div class="input-group">
      <span class="input-group-addon left"><i class="fa fa-product-hunt"></i> </span>
      <select class="form-control" id="c86" name="c86" data-rule-required="true">
         <option value="">- Select -</option>
         <option value="top">top</option>
         <option value="low">low</option>
      </select>
   </div>
</div>
<div class="form-group c92 " data-cid="c92">
   <label class="control-label" for="c92" style="display: none">Mattress</label>
   <div class="input-group">
      <span class="input-group-addon left"><i class="fa fa-check-circle"></i> </span>
      <select class="form-control" id="c92" name="c92" style="display: none">
         <option value="">- Select -</option>
         <option value="One">One</option>
         <option value="Two">Two</option>
         <option value="Three">Three</option>
      </select>
   </div>
</div>
<div class="form-group c97 " data-cid="c97">
   <label class="control-label" for="c97" style="display: none">Sofa</label>
   <div class="input-group">
      <span class="input-group-addon left"><i class="fa fa-circle-o"></i> </span>
      <select class="form-control" id="c97" name="c97" style="display: none">
         <option value="">- Select -</option>
         <option value="One">One</option>
         <option value="Two">Two</option>
         <option value="Three">Three</option>
      </select>
   </div>
</div>

2 个答案:

答案 0 :(得分:0)

这就像你之后的那样吗?。

ps:您可以运行代码段..

var 
  c86 = $('#c86'),
  c92 = $('#c92');

function selChange() {
  var 
    v = c86.find('option:selected').val(),
    vtop = c92.find('option:selected').val();
  $('[data-cid=c92]').toggleClass('hidden',
    v !== 'top');
  $('[data-cid=c97]').toggleClass('hidden',
    v !== 'low');
  console.log(vtop, v);
  $('[data-cid=c_one]').toggleClass('hidden',
    !(v === 'top' && vtop === 'One'));                               
}

c86.change(selChange);
c92.change(selChange);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<div class="form-group c86 required" data-cid="c86">
  <label class="control-label" for="c86">Product</label>
  <div class="input-group"><span class="input-group-addon left"><i class="fa fa-product-hunt"></i> </span>
    <select class="form-control" id="c86" name="c86" data-rule-required="true">
      <option  value="">- Select -</option>
      <option  value="top">top</option>
      <option  value="low">low</option>
    </select>
  </div>
</div>




<div class="hidden form-group c92 " data-cid="c92">
  <label class="control-label" for="c92">Mattress</label>
  <div class="input-group"><span class="input-group-addon left"><i class="fa fa-check-circle"></i> </span>
    <select class="form-control" id="c92" name="c92">
      <option  value="">- Select -</option>
      <option  value="One">One</option>
      <option  value="Two">Two</option>
      <option  value="Three">Three</option>
    </select>
  </div>
</div>

<div class="hidden form-group c97 " data-cid="c97">
  <label class="control-label" for="c97">Sofa</label>
  <div class="input-group"><span class="input-group-addon left"><i class="fa fa-circle-o"></i> </span>
    <select class="form-control" id="c97" name="c97">
      <option  value="">- Select -</option>
      <option  value="One">One</option>
      <option  value="Two">Two</option>
      <option  value="Three">Three</option>
    </select>
  </div>
</div>

<div class="hidden form-group c_one " data-cid="c_one">
  <label class="control-label" for="c_one">Test 2</label>
  <div class="input-group"><span class="input-group-addon left"><i class="fa fa-circle-o"></i> </span>
    <select class="form-control" id="c_one" name="c_one">
      <option  value="">- Select -</option>
      <option  value="A">Top One</option>
      <option  value="B">Was</option>
      <option  value="C">Selected</option>
    </select>
  </div>
</div>

答案 1 :(得分:0)

将id放在div包装器上并隐藏它,使用onchange事件来调用函数displayForm,当select更改它检查值时,然后按id显示/隐藏包装器元素。

function displayForm(elem){
   if(elem.value == "top") {
     document.getElementById('c97').style.display = "none";
      document.getElementById('c92').style.display = "block";
    } else {
      document.getElementById('c92').style.display = "none";
      document.getElementById('c97').style.display = "block";
    }
}
<div class="input-group"><span class="input-group-addon left"><i class="fa fa-product-hunt"></i> </span>
<select class="form-control" onchange="displayForm(this)" id="c86" name="c86" data-rule-required="true"
  <option  value="">- Select -</option>
  <option  value="top">top</option>
  <option  value="low">low</option>

  </select>
</div>

</div>

<div id="c92" style="display: none" class="form-group c92 " data-cid="c92">
  <label class="control-label" for="c92" >Mattress</label>

<div class="input-group"><span class="input-group-addon left"><i class="fa fa-check-circle"></i> </span>
<select class="form-control"  name="c92"   
    >
  <option  value="">- Select -</option>
  <option  value="One">One</option>
  <option  value="Two">Two</option>
  <option  value="Three">Three</option>
  </select>
</div>

</div>

<div id="c97" class="form-group c97 " style="display: none" data-cid="c97">
  <label class="control-label" for="c97" >Sofa</label>

<div class="input-group"><span class="input-group-addon left"><i class="fa fa-circle-o"></i> </span>
<select class="form-control"  name="c97" 
    >
  <option  value="">- Select -</option>
  <option  value="One">One</option>
  <option  value="Two">Two</option>
  <option  value="Three">Three</option>
  </select>
</div>

</div>