Javascript 如何使复选框触发函数?

Javascript 如何使复选框触发函数?,javascript,html,checkbox,label,Javascript,Html,Checkbox,Label,我在a中有一个复选框,我希望该复选框在选中或取消选中时触发一个函数。 我在复选框上附加了一个onchange触发器,但在IE6中,触发器仅在焦点从复选框移开后才会触发,而在FF3和Chrome中,它会立即触发。 我删除了onchange触发器并将onclick触发器附加到,但是现在,当标签单击一次时,触发器会触发两次(enyone知道为什么吗?) 我的问题是:当通过单击复选框或其标签来选中或取消选中复选框时,如何使其激发函数 谢谢。您可能需要打开autopostback属性: 假设您不想要一个

我在a中有一个复选框,我希望该复选框在选中或取消选中时触发一个函数。 我在复选框上附加了一个onchange触发器,但在IE6中,触发器仅在焦点从复选框移开后才会触发,而在FF3和Chrome中,它会立即触发。 我删除了onchange触发器并将onclick触发器附加到,但是现在,当标签单击一次时,触发器会触发两次(enyone知道为什么吗?)

我的问题是:当通过单击复选框或其标签来选中或取消选中复选框时,如何使其激发函数


谢谢。

您可能需要打开autopostback属性:


假设您不想要一个别致的ASP/JQuery解决方案,只需将函数附加到复选框本身的onClick上就可以了

(当然,如果您想让函数根据复选框是否被选中而表现出不同的行为,则需要检查函数中复选框的当前状态。)

正如“Electronics\u Ahoy”所说,您应该能够简单地将
onclick
处理程序附加到复选框元素上。当用户单击标签而不是复选框时,也应该调用此处理程序

HTML:

上述代码在Safari4和Firefox3中似乎工作正常(我不确定它在IE中如何工作)

Steve

不确定使用是否适合您,但如果是这样,您会这样做(假设Prototype 1.6。针对早期版本编写的代码会略有不同):

HTML:


这样做比“裸体”JS方法稍微好一点(在我看来),而且更安全一点。

谢谢您的回复

@史蒂夫:你太紧了。我的问题是,我把复选框放在了标签内,所以我做了以下工作: 我将复选框置于标签外,将onclick触发器仅放在复选框上,它工作正常

我还弄明白了为什么当复选框位于标签内且onclick触发器位于标签上时,trgger会触发两次: 这是因为当我点击标签时,对复选框的点击是模拟的,复选框在标签内,对标签的点击是模拟的,duuuuuhh:)

           <asp:CheckBox id="checkbox1" runat="server"
                AutoPostBack="True"
                Text="Include 8.6% sales tax"
                TextAlign="Right"
                OnCheckedChanged="Check_Clicked"/>
<label><input type="checkbox" id="myCheckbox" />My Checkbox</label>
document.getElementById("myCheckbox").onclick = function() {
    if (this.checked) {
        alert("Checkbox was checked.");
    }
    else {
        alert("Checkbox wasn't checked.");
    }
};
<label><input type="checkbox" id="myCheckbox" />My Checkbox</label>
$('myCheckbox').observe('click', function(cbox)
    {
        var cbox = $('myCheckbox');
        //do work in here.
        //cbox is the DOM element that represents your checkbox
    }
);