1

I have attempted to toggle the button text once it's onclick here. I have use different ID for another button but it doesn't seem to work. How do I use the same function for multiple buttons?

  function buttonToggle() {
                var change = document.getElementById("btnAdd");
                if (change.innerHTML == "ADD")
                {
                    change.innerHTML = "ADDED"
                }
                else {
                    change.innerHTML = "ADD"
                }
            }
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="../../css/register-dev.css"> 
    <link rel="stylesheet" href="../../css/activity-registration.css">

      
       <!-- jQuery first, then Tether, then Bootstrap JS. -->
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  

  <div class="col">
      <button type="button" class="btn btn-primary btn-lg" id="btnAdd" onclick="buttonToggle()">
     <span><i class="fa fa-plus" aria-hidden="true"></i> <b>ADD</b></span>
       </button>
        </div>

<br>
<br>

<div class="col">
   <button type="button" class="btn btn-primary btn-lg" id="btnAdd3" onclick="buttonToggle()">
       <span><i class="fa fa-plus" aria-hidden="true"></i></span> <b>ADD</b>
    </button>
       </div>
Barmar
  • 741,623
  • 53
  • 500
  • 612
Sabrina Said
  • 67
  • 1
  • 2
  • 10
  • see this https://stackoverflow.com/questions/1553661/how-to-get-the-onclick-calling-object pass event in the function, you don't need an id also. – 3960278 Nov 16 '17 at 07:15

2 Answers2

1

It's not good to check for string. What if the text changes to "add" or "Add" or "ADD". Hence, I always recommend to use class and therefore addClass, removeClass and hasClass. Check the below snippet:

$("button").on("click", function() {
  if ($(this).find("b").hasClass('active')) {
    $(this).find("b").text("ADD").removeClass('active');
  } else {
    $(this).find("b").text("ADDED").addClass('active');
  }
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>



<div class="col">
  <button type="button" class="btn btn-primary btn-lg" id="btnAdd">
     <span><i class="fa fa-plus" aria-hidden="true"></i> <b>ADD</b></span>
       </button>
</div>

<br>
<br>

<div class="col">
  <button type="button" class="btn btn-primary btn-lg" id="btnAdd3">
       <span><i class="fa fa-plus" aria-hidden="true"></i></span> <b>ADD</b>
    </button>
</div>
Milan Chheda
  • 8,159
  • 3
  • 20
  • 35
0

Pass parameter in you toggle function

 function buttonToggle(ButtonID) {
            var change = document.getElementById(ButtonID);
            if (change.innerHTML == "ADD")
            {
                change.innerHTML = "ADDED"
            }
            else {
                change.innerHTML = "ADD"
            }
        }

And call it like

For button one :

<button type="button" class="btn btn-primary btn-lg" id="btnAdd" onclick="buttonToggle('btnAdd')">

For button two :

<button type="button" class="btn btn-primary btn-lg" id="btnAdd2" onclick="buttonToggle('btnAdd2')">

function buttonToggle(ButtonID) {
            var change = document.getElementById(ButtonID);
            if (change.innerHTML == "ADD")
            {
                change.innerHTML = "ADDED"
            }
            else {
                change.innerHTML = "ADD"
            }
        }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="../../css/register-dev.css"> 
    <link rel="stylesheet" href="../../css/activity-registration.css">

      
       <!-- jQuery first, then Tether, then Bootstrap JS. -->
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  

  <div class="col">
      <button type="button" class="btn btn-primary btn-lg" id="btnAdd" onclick="buttonToggle('btnAdd')">
     <span><i class="fa fa-plus" aria-hidden="true"></i> <b>ADD</b></span>
       </button>
        </div>

<br>
<br>

<div class="col">
   <button type="button" class="btn btn-primary btn-lg" id="btnAdd2" onclick="buttonToggle('btnAdd2')">
       <span><i class="fa fa-plus" aria-hidden="true"></i></span> <b>ADD</b>
    </button>
       </div>
Owais Aslam
  • 1,577
  • 1
  • 17
  • 39