复选框onclick不会触发

时间:2010-03-08 23:23:01

标签: html checkbox onclick

我的机智就此结束了。

任何人都可以看到这条线有什么问题吗?由于某种原因,单击复选框不会触发该函数,但调用函数工作正常(如果我将精确的“onclick”属性复制到复选框的标签上,它可以正常工作)。

<input type="checkbox" name="match_35_0" id="match_35_0d" value="d0" onclick="checkSwap(document.page_form.match_35_0d, document.page_form.match_35_0)"></input> 

如果有人能够明白为什么它不起作用,我会非常感激。

谢谢!

编辑:由于有几个人问,这里是checkSwap函数(它只是抛出一个警报,所以我可以在添加任何代码之前看到我的onclicks正常工作):

function checkSwap(radioid, groupid) {
alert("radio: " + radioid + " group: " + groupid);}

以下是有问题的复选框所在的表格单元格的整个示例(对于格式化道歉,代码示例似乎不想接受我的换行符):

<td><label onclick="checkSwap(document.page_form.match_34_0d,document.page_form.match_34_0)" for="match_34_0">N</label><input type="checkbox" name="match_34_0" id="match_34_0d" value="d1"  onclick="checkSwap(document.page_form.match_34_0d, document.page_form.match_34_0)"></input></td>

编辑:好的,取消一个将复选框组限制为1复选框的单独功能是问题。

执行限制的代码是为每个复选框设置onclick属性,这显然会覆盖标记集属性。我必须弄清楚如何破解它。

5 个答案:

答案 0 :(得分:1)

此语法

document.page_form.match_35_0d

实际上在page_form名称的表单中搜索<{>> match_35_0d的输入元素。但实际上您已将其设置为复选框的 id ,其中定义了onclick。

您可以通过onclick中的以下调用解决您的问题:

checkSwap(this, document.page_form.match_35_0)

顺便说一句,复选框与radiobutton不同,你实际上并没有将ID传递给函数,而是传递整个元素。将您的功能重写为

function checkSwap(checkbox, group) {
    var checkboxId = checkbox.id;
    for (var i = 0; i < group.length; i++) {
        var element = group[i];
        var elementId = element.id;
        // ...
    }
    // ...
}

要按ID获取元素,只需使用Document#getElementById()

var element = document.getElementById('someId');

答案 1 :(得分:1)

如果已经定义了JQuery ready方法,则Checkbox onclick事件不起作用。如果在准备好的内部添加Jquery单击事件,则可以触发事件。不确定这是否是IE问题..?

答案 2 :(得分:0)

此功能确实触发 - 在萤火虫中检查

<input type="checkbox" name="match_35_0" id="match_35_0d" value="d0" onclick="alert('55')"></input>

你必须检查'checkSwap'

答案 3 :(得分:0)

如果您已经拥有Jquery的就绪功能,那么ckeckbox的Onclick属性将不会触发。您必须在Jquery中添加click事件。只有这样才有效 如下。我不知道原因。

$('#cbFinalAttest').click(function (event) {  
   ...
}

答案 4 :(得分:-1)

this传递给函数会更容易,然后参数将是对调用函数的元素的引用。所以你可以这样做:

function checkSwap(self){
    alert(self.id);
}

编辑:此外,document.page_form.match_35_0.id将获取ID,而不是您拥有它的方式。

相关问题