How to tell if a button is clicked
button, html, if-statement, javascript
Solution
The `onclick` attribute identifies what should happen when the user clicks this particular element. In your case, you're asking that a function be ran; when the function runs, you can rest assured that the button was clicked - that is after all how the function itself got put into motion (unless you invoked it some other way).
Your code is a bit confusing, but suppose you had two buttons and you wanted to know which one was clicked, informing the user via the `stateTextBox` value:
(function () {
// Enables stricter rules for JavaScript
"use strict";
// Reference two buttons, and a textbox
var playButton = document.getElementById("play"),
stateTextBox = document.getElementById("state"),
ignoreButton = document.getElementById("ignore");
// Function that changes the value of our stateTextBox
function changeState(event) {
stateTextBox.value = event.target.id + " was clicked";
}
// Event handlers for when we click on a button
playButton.addEventListener("click", changeState, false);
ignoreButton.addEventListener("click", changeState, false);
}());
You can test this code live at http://jsfiddle.net/Y53LA/.
Note how we add event-listeners on our `playButton` and `ignoreButton`. This permits us to keep our HTML clean (no need for an `onclick` attribute). Both of these will fire off the `changeState` function anytime the user clicks on them.
Within the `changeState` function we have access to an `event` object. This gives us some details about the particular event that took place (in this case, the `click` event). Part of this object is the `target`, which is the element that was clicked. We can grab the `id` property from that element, and place it into the `value` of the `stateTextBox`.
Here is the adjusted HTML:
<input type="button" value="Play with Pogo" id="play" />
<input type="text" id="state" />
<input type="button" value="Ignore with Pogo" id="ignore" />
Problem
I have this code: ``` <script type="text/javascript"> function changestate() { var StateTextBox = document.getElementById("State"); var IgnoreTextBox = document.getElementById("Ignore"); var PlayButton = document.getElementById("Play"); if(document.getElementById("Play").onclick == true) { StateTextBox.value = "Happy"; } } </script> <input TYPE="button" VALUE="Play with Pogo" id="Play" onClick="changestate();"/> ``` I'm trying to know when the button is clicked, and have that if button is clicked in the if statement. I want to know this so I can change the value that is inside the text box. The problem is, I do not know how to tell when the button is clicked. If you could help me out that would be great.