2012-11-18 76 views
3

我有這樣的代碼:如何判斷一個按鈕被點擊

<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語句。我想知道這個,所以我可以更改文本框內的值。問題是,我不知道如何判斷按鈕被點擊的時間。如果你能幫助我,那會很棒。

+1

如果函數被調用,則該按鈕被點擊。但是,應該注意的形式,通常按鈕輸入將提交表單,它可以殺死任何js代碼 –

+0

你到底想幹什麼?你似乎是檢查是否'ignoreTextBox'被點擊(在你的'if'狀態,你的'else'條件),而不是一個按鈕。 – Sampson

+0

你是對的....讓我快速修復它 – heinst

回答

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屬性,將其放入stateTextBoxvalue

下面是調整HTML:

<input type="button" value="Play with Pogo" id="play" /> 
<input type="text" id="state" /> 
<input type="button" value="Ignore with Pogo" id="ignore" />​ 
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"; 
      } 
     } 
    } 
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");'/> 
相關問題