如何判断是否单击了按钮

时间:2012-11-18 01:59:13

标签: javascript html button if-statement

我有这段代码:

<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();"/>

我正在尝试知道何时单击该按钮,并在if语句中单击该按钮。我想知道这一点,所以我可以更改文本框内的值。问题是,我不知道如何判断单击按钮的时间。如果你能帮助我,那就太好了。

3 个答案:

答案 0 :(得分:7)

onclick属性标识用户单击此特定元素时应发生的情况。在你的情况下,你要求运行一个函数;当函数运行时,你可以放心点击按钮 - 这毕竟是函数本身如何启动(除非你以其他方式调用它)。

您的代码有点令人困惑,但假设您有两个按钮,并且您想知道哪个按钮被点击,通过stateTextBox值通知用户:

(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);
}());

您可以在http://jsfiddle.net/Y53LA/实时测试此代码。

请注意我们如何在playButtonignoreButton上添加事件监听器。这允许我们保持HTML清洁(不需要onclick属性)。只要用户点击它们,这两个功能都会触发changeState功能。

changeState函数中,我们可以访问event个对象。这为我们提供了有关发生的特定事件的详细信息(在本例中为click事件)。该对象的一部分是target,它是被单击的元素。我们可以从该元素中获取id属性,并将其放入value的{​​{1}}。

以下是经过调整的HTML:

stateTextBox

答案 1 :(得分:0)

您可以通过使用标志(true或false)来了解是否单击了按钮。

        var flag = false;

    window.addEventListener("load", changestate, false);

    function changestate() {

        var StateTextBox = document.getElementById("State");
        var PlayButton = document.getElementById("Play");

        PlayButton.addEventListener("click", function () {
            flag = true;
        })

        PlayButton.addEventListener("click", change)

        function change() {
            if (flag) {
                StateTextBox.value = "Happy";
            }
        }
    }

答案 2 :(得分:0)

回顾这一点,多年以后,你可以做到:

<script type="text/javascript">
function changestate(action)
{
    var StateTextBox = document.getElementById("State");
    var IgnoreTextBox = document.getElementById("Ignore");
    var PlayButton = document.getElementById("Play");
    if(action == "Play")
    {
        StateTextBox.value = "Happy";   
    }
}
</script>
<input TYPE="button" VALUE="Play with Pogo" id="Play" onClick='changestate("Play");'/>