I am making an invite system. I am using ajax to load a list of search results. When an li is clicked I push the user's id into an array and append a checkmark to the li to let them know they were added to the list.
- The push is working but the splice is not. Also when the list is empty the submit button does not return to its disabled state and original styling.
Lastly, when I search again (re-calling the ajax) it removes the appended checkmark. Is there a way with javascript to store which user was click on and retain the appended checkmark when they search for another name?
(^ when i load the results with ajax i check if a person is invited or not in my db i could do it so if they are already invited a click would delete from table..if not on li click i insert with an ajax and setTimeout on success.. do you think that would be a bad practice?)
Below is my html && script
HTML
<li class='inviteUser'>
    <img src='$usersProfilePhoto' alt=''>
    <h2>$usersname</h2>
    <input type='hidden' value='$otherUserID'>
    <span></span>
</li>
$(function(){
    var inviteList = new Array();
      $(document).on('click', '.inviteUser', function(){
          var inviteUserID = $(this).children('input').val();
          inviteList.push(inviteUserID)
          $(this).children('span').append("<p class='remove'>✓</p>");
          if(inviteList.length > 0) {
              document.getElementById('imcSubmitButton').disabled = false;
              $('#imcSubmitButton').css({'opacity':'1'});
          } else {
              document.getElementById('imcSubmitButton').disabled = true;
              $('#imcSubmitButton').css({'opacity':'0.25'});
          }
      });
      $(document).on('click', '.remove', function() {
          inviteList.splice($(this).index(), 1);
          $(this).remove();
      });
});
 
    