我正在为我的公司制作一个脚本,点击一个复选框:
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错误消息:
有人对此有解决方法吗?我想这很简单,所以除了提供你的修复,你会解释为什么你的修复工作?
如果您的解决方案通过直接按位value
代替实际ID
来节省时间,则可获得积分。
注意:我无法使用GetElementByID
方法,因为我提取 ID
或value
,而不是使用它来执行操作
谢谢大家!
答案 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);
}
这样它就适用于所有浏览器。