Reputation: 143
$( document ).ready(function() {
$("#c86").bind("change",function(){
var selectedValue=$(this).val().toLowerCase();
switch(selectedValue){
case "bmattress":
$("#c92").show();
$("#c97").hide();
$("#c103").hide();
break;
case "mattress":
$("#c92").hide();
$("#c97").show();
$("#c103").hide();
break;
case "tmattress":
$("#c92").hide();
$("#c97").hide();
$("#c103").show();
break;
case "-":
$("#c92").hide();
$("#c97").hide();
$("#c103").hide();
break;
default:
break;
}
});
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<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>
<label class="control-label" for="c86">Main Choice</label>
<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="bmattress">Bed</option>
<option value="mattress">Mat</option>
<option value="tmattress">Top</option>
</select>
</div>
<div id="c92" class="form-group c92 " data-cid="c92" style="display: none">
<label class="control-label" for="c92">First dropdown</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="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
<div id="c97" class="form-group c97 " style="display: none" data-cid="c97">
<label class="control-label" for="c97">Second dropdown</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="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
<div id="c103" class="form-group c103" style="display: none" data-cid="c103">
<label class="control-label" for="c103">Third dropdown</label>
<div class="input-group"><span class="input-group-addon left"><i class="fa fa-stop-circle"></i> </span>
<select class="form-control" name="c103"
>
<option value="">- Select -</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
I have a dropdown with jquery which appears/hides other dropdown according to choices. It works OK but i want to have a fourth dropdown which appears when we select something on third dropdown. It seems that when i have id on root div it doesn't work does anybody knows how to fix this?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<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"/>
<script>
$( document ).ready(function() {
$("#c86").bind("change",function(){
var selectedValue=$(this).val().toLowerCase();
switch(selectedValue){
case "bmattress":
$("#c92").show();
$("#c97").hide();
$("#c103").hide();
break;
case "mattress":
$("#c92").hide();
$("#c97").show();
$("#c103").hide();
break;
case "tmattress":
$("#c92").hide();
$("#c97").hide();
$("#c103").show();
break;
case "-":
$("#c92").hide();
$("#c97").hide();
$("#c103").hide();
break;
default:
break;
}
});
});
</script>
</head>
<body>
<label class="control-label" for="c86">Main Choice</label>
<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="bmattress">Bed</option>
<option value="mattress">Mat</option>
<option value="tmattress">Top</option>
</select>
</div>
<div id="c92" class="form-group c92 " data-cid="c92" style="display: none">
<label class="control-label" for="c92">First dropdown</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="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
<div id="c97" class="form-group c97 " style="display: none" data-cid="c97">
<label class="control-label" for="c97">Second dropdown</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="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
<div id="c103" class="form-group c103" style="display: none" data-cid="c103">
<label class="control-label" for="c103">Third dropdown</label>
<div class="input-group"><span class="input-group-addon left"><i class="fa fa-stop-circle"></i> </span>
<select class="form-control" name="c103"
>
<option value="">- Select -</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
</body>
</html>
Upvotes: 1
Views: 305
Reputation: 8781
Give your fourth dropdown an id and register a change event the same way that you did with the #c86. Assuming this is the 4th DropDown:
<div id="c104" class="form-group c104" style="display: none" data-cid="c103">
<label class="control-label" for="c103">Forth dropdown</label>
<div class="input-group"><span class="input-group-addon left"><i class="fa fa-stop-circle"></i> </span>
<select class="form-control" name="c104" id="c104_dd" >
<option value="">- Select -</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
</div>
Give an id to the 3rd:
<select class="form-control" name="c103" id="c103_dd" >
<option value="">- Select -</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="Other">Other</option>
</select>
</div>
and create a change event handler
$("#c103_dd").change(function()
{
var selectedValue=$(this).val().toLowerCase();
if(selectedValue == 1)
{
$("#c104").show();
}
})
Upvotes: 1