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>

1

2 Answers 2

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>

Sign up to request clarification or add additional context in comments.

Comments

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>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.