Edit:
Issues 1 and 2 have been resolved. Issue 3 is the only one outstanding.
Updated demo:
 jQuery(function($) {
   function addremovebtnshow() {
     if ($(".attendee").length == 1) {
       $('.remove').hide();
     } else {
       $('.remove').show();
     }
   }
   $('input[name="attendee"]').hide();
   $('.more_buttons').hide();
   addremovebtnshow();
   //show it when the checkbox is clicked
   $(document).on("click", '.check', function() {
     if ($(".check:checked").length > 0) {
       $('input[name="attendee"]').fadeIn();
       $('.more_buttons').fadeIn();
       addremovebtnshow();
     } else {
       $('input[name="attendee"]').hide();
       $('.more_buttons').fadeOut();
       addremovebtnshow();
     }
   });
   $('.add').on('click', add);
   $('.remove').on('click', remove);
   function add() {
     var new_chq_no = parseInt($('#total_chq').val()) + 1;
     var new_input = "<input type='text' placeholder='Attendee name' id='new_" + new_chq_no + "'>";
     $('#new_chq').append(new_input);
     $('#total_chq').val(new_chq_no);
   }
   function remove() {
     var last_chq_no = $('#total_chq').val();
     if (last_chq_no > 1) {
       $('#new_' + last_chq_no).remove();
       $('#total_chq').val(last_chq_no - 1);
     }
   }
 });form{
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 400px;
  margin: 0 auto;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="checkbox" id="event1" class="check" name="event1" value="Event 1">
  <label for="event1">Event 1</label>
  <input type="checkbox" id="event2" class="check" name="event2" value="Event 2">
  <label for="event2">Event 2</label>
  <div id="new_chq"></div>
  <!-- this one is default and cannot be removed-->
  <input type="text" name="attendee" placeholder="Attendee name"> 
  <input type="hidden" value="1" id="total_chq">
  <div class="more_buttons">
      <button class="add" type="button">+</button>
      <button class="remove" type="button">-</button>
  </div>
</form>Here's a supporting image of what I'm trying to achieve:
I'm building a form which will have additional input's appear if some values are true and or false.
Currently I'm having 3 issues:
1. Div not fading in even though is(':checked') is true
When my checkbox with the id of #event2 is true (checked), I'm looking to fadeIn() another div which contains radio buttons. From what I've read on other stack overflow questions (namely this one), it mentions that is(':checked') is how you would determine whether a checkbox is checked, and then perform an action. So knowing this, I have the following:
  $('.coaches').hide();
  if ($('#event2').is(':checked')) {
    console.log('clicked');
    $('.coaches').fadeIn();
  }
But nothing happens, not even the console.log()
2. If either of the checkboxes are checked, I want to display textfield and buttons. But when I click one checkbox, it disappears
So, I have this one working partially. In my demo below, when you check a checkbox, it shows the textfield and button. Here are my scenario's:
- Click Event 1, fields show.
- Click Event 2, fields show.
- Click Event 1and thenEvent 2, fields show.
- Click Events 1and thenEvents 2and then uncheckEvents 1, fields disappear.
- Click Events 1and thenEvents 2and then uncheckEvents 2, fields disappear.
When either of the checkboxes are checked I want the textfields and buttons to remain. Then if no checkbox is checked, hide them.
3. When there is more than one input[name="attendee"], add <button class="remove action-button" type="button">-</button>. Currently my count approach isn't working and I think it's because my 'count' isn't going up dynamically.
var element = $('input[name="attendee"]');
var count = 0
$(".add").on("click", function(event) {
  count++;
});
console.log(count);
if (count > 1) {
  $('.remove').fadeIn();
} else {
  $('.remove').hide();
}Demo in full:
jQuery(function($) {
  // below im trying to show the coaches div only if #event2 is true (checked).
  $('.coaches').hide(); // hide it first
  // if checked, show it
  if ($('#event2').is(':checked')) {
    console.log('clicked');
    $('.coaches').fadeIn();
  }
  // now im trying to show the textfield and add or remove buttons  if either of the checkboxes are checked.
  $('input[name="attendee"]').hide();
  $('.add').hide();
  $('.remove').hide();
  $('#event1, #event2').on('click', function() {
    if ($(this).is(':checked')) {
      $('input[name="attendee"]').fadeIn();
      $('.add, .remove').fadeIn();
    } else {
      $('input[name="attendee"]').hide();
      $('.add, .remove').hide();
    }
  });
// ADD more textfields on plus click, remove text on minus
 $('.add').on('click', add);
 $('.remove').on('click', remove);
 function add() {
   var new_chq_no = parseInt($('#total_chq').val()) + 1;
   var new_input = "<input type='text' placeholder='Attendee name' id='new_" + new_chq_no + "'>";
   $('#new_chq').append(new_input);
   $('#total_chq').val(new_chq_no);
 }
 function remove() {
   var last_chq_no = $('#total_chq').val();
   if (last_chq_no > 1) {
     $('#new_' + last_chq_no).remove();
     $('#total_chq').val(last_chq_no - 1);
   }
 }
});form{
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 400px;
  margin: 0 auto;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="checkbox" id="event1" name="event1" value="Event 1">
  <label for="event1">Event 1</label>
  <input type="checkbox" id="event2" name="event2" value="Event 2">
  <label for="event2">Event 2</label>
  <div id="new_chq"></div>
  <input type="text" name="attendee" placeholder="Attendee name">
  <input type="hidden" value="1" id="total_chq">
  <button class="add" type="button">+</button>
  <button class="remove" type="button">-</button>
  <div class="coaches">
  
    <label>
      <input type="radio" id="travel_yes" name="travel" value="Yes">
      <span>Yes</span>
    </label>
    <label>
      <input type="radio" id="travel_no" name="travel" value="No">
      <span>No</span>
    </label>
</div>
</form>
 
     
    