May I know how to solve my problem, how will it work if you click the button then the confirm button then the text “Hello” will change to a “Hi” word? I tried my best to solve it but I still can not know how to figure my problem that is why I am asking for a help. https://jsfiddle.net/chrismontage/dverj816/10/
<button class = "btn btn1" id = "myBtn">Button</button> <h4 id = "message"> Hello </h4> <!-- The Modal --> <div id="myModal" class="modal"> <!-- Modal content --> <div class="modal-content"> <div class="modal-header"> <span class="close">×</span> </div> <div class="modal-body"> <h4 class = "text-center">Are you sure you want to cancel your order?</h4> </div> <div class="modal-footer mx-auto"> <button class = "btn" id = "confirm" onclick = "changeStatus()">Confirm</button> <button class = "btn" id = "cancel">Cancel</button> </div> </div> </div>
/* The Modal (background) */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1; /* Sit on top */ padding-top: 100px; /* Location of the box */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ } /* Modal Content */ .modal-content { position: relative; background-color: #fefefe; margin: auto; padding: 0; border: 1px solid #888; max-width: 40%; box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19); -webkit-animation-name: animatetop; -webkit-animation-duration: 0.4s; animation-name: animatetop; animation-duration: 0.4s } /* Add Animation */ @-webkit-keyframes animatetop { from {top:-300px; opacity:0} to {top:0; opacity:1} } @keyframes animatetop { from {top:-300px; opacity:0} to {top:0; opacity:1} } /* The Close Button */ .close { color: white; float: right; font-size: 28px; font-weight: bold; } .close:hover, .close:focus { color: $color5; text-decoration: none; cursor: pointer; }
// Get the modal var modal = document.getElementById("myModal"); // Get the button that opens the modal var btn1 = document.getElementById("myBtn"); var confirm = document.getElementById("confirm"); var cancel = document.getElementById("cancel"); // Get the <span> element that closes the modal var span = document.getElementsByClassName("close")[0]; // When the user clicks the button, open the modal btn1.onclick = function() { modal.style.display = "block"; } confirm.onclick = function () { modal.style.display = "none"; } function changeStatus() { document.getElementById("message").innerHTML = "Hi"; } cancel.onclick = function () { modal.style.display = "none"; } // When the user clicks on <span> (x), close the modal span.onclick = function() { modal.style.display = "none"; } // When the user clicks anywhere outside of the modal, close it window.onclick = function(event) { if (event.target == modal) { modal.style.display = "none"; } }
Advertisement
Answer
Just add one line to your confirm.onclick
function:
confirm.onclick = function () { modal.style.display = "none"; changeStatus(); }
You had the function right, just probably forgot to add it to your onclick listener.