2012-02-05 69 views
0

我試圖獲取點擊按鈕的值,或確定哪個按鈕被點擊。如何使用getElemetByName獲取單擊的按鈕名稱?

從下面的代碼,我得到的所有值,但我只是想點擊按鈕。

<script type="text/javascript"> 
    function GetCheckedFruits() { 
     var elements = document.getElementsByName ("fruit"); 
     for (var i=0; i < elements.length; i++) { 
      if (elements[i].click) { 
       alert ("The " + (i+1) + ". button is click"); 
      } 
     } 
    } 
</script> 

HTML:

<input id="Text1" name="fruit" type="button" value="apple" onclick="GetCheckedFruits()" /><br /> 

<input id="Text1" name="fruit" type="button" value="banana" onclick="GetCheckedFruits()" /><br /> 

<input id="Text1" name="fruit" type="button" value="blackberry" onclick="GetCheckedFruits()" /><br /> 

我要去哪裏錯了?

+1

哪個按鈕是點擊?你的意思是點擊或點擊?或檢查?這些複選框?請發佈整個HTML。可能更容易弄清楚你想要什麼。 – SoonDead 2012-02-05 09:43:04

+0

在同一時間怎麼可能點擊這麼多的按鈕,你會發現點擊按鈕...你也找不到按鈕被點擊...按鈕,OnClick,OnDoubleClick,onMouseOver是事件....所以如果他們被點擊,我們將執行一些行動... – 2012-02-05 09:49:03

+0

'元素[i] .click'將點擊按鈕,並不會找到它是否被點擊或不...因此,OP是越來越所有的按鈕點擊.... – 2012-02-05 09:50:52

回答

0

如果你想點擊該按鈕時提醒消息,你將不得不使用事件是這樣的:

<script type="text/javascript"> 
    function GetCheckedFruits() { 
     var elements = document.getElementsByName ("fruit"); 
     for (var i=0; i < elements.length; i++) { 
      elements[i].onclick = function() { 
       // You can put anything you want here 
       // the variable `this` is the clicked button 
       alert ("The " + this.value + " button is click"); 
      } 
     } 
    } 
</script> 

編輯:

在您使用複選框工作,並試圖獲得哪些水果,其中選擇的情況下,這將工作:

<script type="text/javascript"> 
    function GetCheckedFruits() { 
     var elements = document.getElementsByName ("fruit"); 
     for (var i=0; i < elements.length; i++) { 
      if (elements[i].checked == 1) { 
       alert ("The " + elements[i].value + " button is click"); 
      } 
     } 
    } 
</script> 
+0

爲什麼downvote?這可能是正確的答案。 – SoonDead 2012-02-05 09:54:09

+0

不知道爲什麼downvote。但看看函數名稱,似乎OP在談論複選框。 – Nirmal 2012-02-05 09:56:48

+0

@Nirmal你可能是對的。我沒有考慮函數名稱。但問題並不十分清楚。 – Lucius 2012-02-05 10:11:54

1

變化

if (elements[i].click) { 
    alert ("The " + (i+1) + ". button is click"); 
} 

if (elements[i].type == 'button') { 
    alert ("The " + elements[i].value + " button is click"); 
} 

完蛋了。

編輯

試試這個

功能GetCheckedFruits(clickedButton){ 警報(以下簡稱 「」 + clickedButton.value + 「按鈕點擊。」); } }

,並添加像按鈕這樣

<input type="button" value="Button1" onclick="{GetCheckedFruits(this);}" /> <input type="button" value="Button2" onclick="{GetCheckedFruits(this);}" /> <input type="button" value="Button3" onclick="{GetCheckedFruits(this);}" />

+0

謝謝,但我仍然收到所有按鈕的提醒,不僅僅是按鈕點擊 – user1024610 2012-02-05 09:43:23

+0

你想要所有被點擊的按鈕? – 2012-02-05 09:47:09

+0

我怎麼得到只是點擊按鈕,我有3個按鈕 – user1024610 2012-02-05 09:47:19

相關問題