Reputation: 11
I am trying to hide/show div
with ID #edate
when the selected radio input is "yes"/"no". Below is my code.
<div id="edate">
<label>End date</label>
<input name="enddate" placeholder="" class="form-control" type="date">
</div>
<div>
<label>Continue</label>
<input name="continue" id="continue" value="1" type="radio"> Yes </label>
<input name="continue" id="nocontinue" value="0" type="radio"> No </label>
</div>
<script src="jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
if (data.continue == 1) {
$("#nocontinue").removeAttr('checked');
$("#continue").attr('checked', 'checked');
$("#edate").hide();
} else {
$("#continue").removeAttr('checked');
$("#nocontinue").attr('checked', 'checked');
$("#edate").show();
}
});
</script>
Upvotes: 0
Views: 212
Reputation: 3239
Use a common event for radio group. Also, if default is "Yes", make it as Checked in HTML.
$(function(){
$('input[name=continue]').on('click',function(){
if($(this).val() == "1"){
$('#edate').show();
}else{
$('#edate').hide();
}
});
});
Upvotes: 0
Reputation: 61
$('#continue,#nocontinue').on('click',function(){
$(this).val() == '1' ? $("#edate").show() : $("#edate").hide();
})
jsfiddle: https://jsfiddle.net/ftjpdvrz/
Upvotes: 0
Reputation: 4579
This question is easy to find on SO.
Here is some codes I found with 2 min search on the forum :
HTML
<div id="edate">
<label>End date</label>
<input name="enddate" placeholder="" class="form-control" type="date">
</div>
<div>
<label>Continue</label>
<input name="continue" id="continue" value="1" type="radio"> Yes </label>
<input name="continue" id="nocontinue" value="0" type="radio"> No </label>
</div>
jQuery
$("input[type=radio]").click(function() {
switch(this.value){
case '1':
$("#edate").show();
break;
case '0':
$("#edate").hide();
break;
}
});
Upvotes: 0
Reputation: 12295
How about this approach:
HTML
<div id="edate">
<label>End date</label>
<input name="enddate" id="enddate" placeholder="" class="form-control" type="date">
</div>
<div>
<label>Continue</label>
<input name="continue" class="clContinue" id="continue" value="1" type="radio"> Yes
<input name="continue" class="clContinue" id="nocontinue" value="0" type="radio"> No
</div>
JQuery
$(function(){
$('.clContinue').click(function(){
JSON.parse($(this).val())?$('#enddate').show():$('#enddate').hide();
});
});
Upvotes: 1
Reputation:
$(document).ready(function() {
$("#continue").on('click',function(){
$("#edate").hide();
});
$("#nocontinue").on('click',function(){
$("#edate").show();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="edate">
<label>End date</label>
<input name="enddate" placeholder="" class="form-control" type="date">
</div>
<div>
<label>Continue</label>
<input name="continue" id="continue" value="1" type="radio"> Yes </label>
<input name="continue" id="nocontinue" value="0" type="radio"> No </label>
</div>
Upvotes: 0
Reputation: 66
Do something, when an options is clicked like this:
$('#continue').on('click', function() {
$("#edate").hide();
});
Upvotes: 1