在纯Javascript中获取该复选框的复选框的ID或值

时间:2013-12-18 15:47:48

标签: javascript html checkbox getelementbyid

我正在为我的公司制作一个脚本,点击一个复选框:

  • 触发功能OptionSelected()
  • 获取该复选框的ID
  • 根据ID
  • 执行按位操作

或者,最好是:

  • 触发功能OptionSelected()
  • 获取分配给该复选框的整数(<input="checkbox" value="2",获取2
  • 使用value执行按位操作。

要进行调试,我的代码会向我返回一个内部值的警报。我还没有编写按位运算部分。

这是我的js代码:

function OptionsSelected(e)
{
    alert(e.target.id);
}

它引用的示例复选框:

<input type="checkbox" name="checkgrp" onclick="return OptionsSelected(e)" value="2" id="eXAMPLE"><LABEL id="LeXAMPLE"></LABEL>

当我在运行时单击该框时,我收到此javascript错误消息:

enter image description here

有人对此有解决方法吗?我想这很简单,所以除了提供你的修复,你会解释为什么你的修复工作?

如果您的解决方案通过直接按位value代替实际ID来节省时间,则可获得积分。

注意:我无法使用GetElementByID方法,因为我提取 IDvalue,而不是使用它来执行操作

谢谢大家!

2 个答案:

答案 0 :(得分:9)

使用onclick属性调用脚本时,您自己调用该函数。所以在这种情况下,你传递的是一个你从未定义过的名为e的变量。

相反,您可以将引用传递给您单击的复选框:

<input type="checkbox" name="checkgrp" onclick="return OptionsSelected(this)" value="2" id="eXAMPLE"><LABEL id="LeXAMPLE"></LABEL>

OptionsSelected中你会这样做:

function OptionsSelected(me)
{
    alert(me.id);
}

答案 1 :(得分:2)

调用函数e时,未定义变量OptionsSelected。 要解决这个问题,您可以选择Tom的解决方案。

查看附加的错误消息,我猜你在IE上测试了你的代码。 仅供您参考,IE不支持'target'属性,它们使用srcElement。 所以你可以这样做:

在html中,

<input type="checkbox" name="checkgrp" onclick="return OptionsSelected(window.event)" value="2" id="eXAMPLE"><LABEL id="LeXAMPLE"></LABEL>

在javascript中,

function OptionsSelected(e)
{
   alert((e.target || e.srcElement).value);
}

这样它就适用于所有浏览器。