2012-02-05 65 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