I have this drop down
when I select that particular option I am given a radio
button so when I choose the radio button I should be displayed a div
and when I choose something else from the drop down
menu that div
which was shown should now be hidden
index.html
<select id="selection" name="sub_sel">
<option value="blank"></option>
<option value="option_1">Option 1</option>
<option value="option_2">Option 2</option>
</select>
<div id="buttons" style="display:none;">
<form id='form-id'>
<input id='radio1' name='test' type='radio' /> Number1<br />
<input id='radio2' name='test' type='radio' /> Number 2<br />
</form>
</div>
<div id='select_raido1' style='display:none'>Div1</div>
<div id='select_raido2' style='display:none'>Div2</div>
jquery.js
$(document).ready(function(){
$('#selection').on('change', function(){
if (this.value == 'option_1')
{
$("#buttons").show();
}else{
$("#buttons").hide();
}
});
});
$('#form-id').change(function() {
if ($('#radio1').attr('checked')) {
$('#select_raido1').show();
} else {
$('#select_raido1').hide();
}
if ($('#radio2').attr('checked')) {
$('#select_raido2').show();
} else {
$('#select_raido2').hide();
}
});
This is what i have so far can somebody please tell me what i am doing incorrect
i am unable to display div when i click on the radio button and hide them when choosing a different drop down option
Check with :checked for radiobutton. Try like this:
$('#form-id').change(function() {
if ($('#radio1').is(':checked')) {
$('#select_raido1').show();
} else {
$('#select_raido1').hide();
}
if ($('#radio2').is(':checked')) {
$('#select_raido2').show();
} else {
$('#select_raido2').hide();
}
});
Updated the fiddle: https://jsfiddle.net/43rx29vj/6/
It's easier to make your elements more accessible by adding class names.
$(document).ready(function() { $('#selection').on('change', function() { if (this.value == 'option_1') { $("#buttons").show(); }else{ $("#buttons").hide(); $('.mySelect').hide(); } }); $('.myRadio').click(function(){ $('.mySelect').hide(); $('#' + $(this).data('target')).show(); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <select id="selection" name="sub_sel"> <option value="blank"></option> <option value="option_1">Option 1</option> <option value="option_2">Option 2</option> </select> <div id="buttons" style="display:none;"> <form id='form-id'> <input id='radio1' name='test' type='radio' data-target='select_raido1' class='myRadio' /> Number1<br /> <input id='radio2' name='test' type='radio' data-target='select_raido2' class='myRadio' /> Number 2<br /> </form> </div> <div id='select_raido1' style='display:none' class='mySelect'>Div1</div> <div id='select_raido2' style='display:none' class='mySelect'>Div2</div>
You could simplify your code without changing anything in you HTML code check the example bellow.
NOTE :
$("div[id^='select_']").hide(); //Mean hide all divs with id start by "select_"
Hope this helps.
$(document).ready(function(){ $('#selection').on('change', function() { if ($(this).val() == 'option_1') $("#buttons").show(); else $("#buttons").hide(); $("div[id^='select_']").hide(); }); $('#form-id input').change(function() { $("div[id^='select_']").hide(); $('#select_'+this.id).show(); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="selection" name="sub_sel"> <option value="blank"></option> <option value="option_1">Option 1</option> <option value="option_2">Option 2</option> </select> <div id="buttons" style="display:none;"> <form id='form-id'> <input id='radio1' name='test' type='radio' /> Number1<br /> <input id='radio2' name='test' type='radio' /> Number 2<br /> </form> </div> <div id='select_radio1' style='display:none'>Div1</div> <div id='select_radio2' style='display:none'>Div2</div>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.