Reputation: 1473
I am calling function onclick radio button but its working on only one radio button not on other as well. How can I call the same function on both radio buttons ?
$("#trip_type_filter").change(function(){
if($(this).val()=="yes")
{
$('[class="single_trip"]').show();
$('[class="multi_trip"]').show();
$('[class="all_inclusive_single"]').show();
$('[class="all_inclusive_multi"]').show();
$('[class="trip_cancellation"]').show();
}
else if($(this).val()=="no")
{
$('[class="single_trip"]').show();
$('[class="multi_trip"]').hide();
$('[class="all_inclusive_single"]').hide();
$('[class="all_inclusive_multi"]').hide();
$('[class="trip_cancellation"]').hide();
}
});
Here is html:
<input type="radio" id="trip_type_filter" name="trip_type_filter" value="yes" /> Yes
<input type="radio" id="trip_type_filter" name="trip_type_filter" value="no" /> No
AND
<div class="single_trip">single_trip</div>
<div class="multi_trip">multi_trip</div>
<div class="all_inclusive_single">all_inclusive_single</div>
<div class="all_inclusive_multi">all_inclusive_multi</div>
<div class="trip_cancellation">trip_cancellation</div>
Upvotes: 1
Views: 65
Reputation: 2869
You almost had it correct. I just changed your checkbox ids into classes, and the change event to respond to changes in that class:
<input type="radio" class="trip_type_filter" name="trip_type_filter" value="yes" />Yes
<input type="radio" class="trip_type_filter" name="trip_type_filter" value="no" />No
$(".trip_type_filter").change(function () {
if ($(this).val() == "yes") {
$('[class="single_trip"]').show();
$('[class="multi_trip"]').show();
$('[class="all_inclusive_single"]').show();
$('[class="all_inclusive_multi"]').show();
$('[class="trip_cancellation"]').show();
} else if ($(this).val() == "no") {
$('[class="single_trip"]').show();
$('[class="multi_trip"]').hide();
$('[class="all_inclusive_single"]').hide();
$('[class="all_inclusive_multi"]').hide();
$('[class="trip_cancellation"]').hide();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="radio" class="trip_type_filter" name="trip_type_filter" value="yes" />Yes
<input type="radio" class="trip_type_filter" name="trip_type_filter" value="no" />No
<div class="single_trip">single_trip</div>
<div class="multi_trip">multi_trip</div>
<div class="all_inclusive_single">all_inclusive_single</div>
<div class="all_inclusive_multi">all_inclusive_multi</div>
<div class="trip_cancellation">trip_cancellation</div>
Upvotes: 0
Reputation: 1426
change your inputs ids. and check with class.
<input type="radio" id="trip_type_filter_yes" class="classToCheck" name="trip_type_filter" value="yes" /> Yes
<input type="radio" id="trip_type_filter_no" class="classToCheck" name="trip_type_filter" value="no" /> No
and use class chere
$(".classToCheck").change
Upvotes: 0
Reputation: 6922
Both ids are the same. Use different ids. Also add a class to your checkboxes and add the event to the class:
HTML
<input type="radio" id="trip_type_filter" class="checkChange" name="trip_type_filter" value="yes" /> Yes
<input type="radio" id="trip_type_filter2" class="checkChange" name="trip_type_filter" value="no" /> No
Javascript
$(".checkChange").change(function(){
if($(this).val()=="yes")
{
$('[class="single_trip"]').show();
$('[class="multi_trip"]').show();
$('[class="all_inclusive_single"]').show();
$('[class="all_inclusive_multi"]').show();
$('[class="trip_cancellation"]').show();
}
else if($(this).val()=="no")
{
$('[class="single_trip"]').show();
$('[class="multi_trip"]').hide();
$('[class="all_inclusive_single"]').hide();
$('[class="all_inclusive_multi"]').hide();
$('[class="trip_cancellation"]').hide();
}
});
Upvotes: 1
Reputation: 313
Change this
$("#trip_type_filter").change(function(){
To
$("input[type=radio][name=trip_type_filter]").change(function(){
Upvotes: 0