我有这段代码:
<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语句中单击该按钮。我想知道这一点,所以我可以更改文本框内的值。问题是,我不知道如何判断单击按钮的时间。如果你能帮助我,那就太好了。
答案 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/实时测试此代码。
请注意我们如何在playButton
和ignoreButton
上添加事件监听器。这允许我们保持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");'/>