为什么javascript代码不是';不是每次都执行吗?

为什么javascript代码不是';不是每次都执行吗?,javascript,jquery,Javascript,Jquery,我在javascript中有这个控件,但有点不对劲,因为似乎不是每次我进行更改时都会执行它。我会发出警报,以便看到发生了什么。我做错了什么 controlToSet和control1是复选框,control2是单选按钮 function SetValues(controlToSet, control1, control2) { if (control1.is(':checked') && control2.is(':checked')) { $(cont

我在javascript中有这个控件,但有点不对劲,因为似乎不是每次我进行更改时都会执行它。我会发出警报,以便看到发生了什么。我做错了什么

controlToSet
control1
是复选框,
control2
是单选按钮

function SetValues(controlToSet, control1, control2) {

    if (control1.is(':checked') && control2.is(':checked')) {
        $(controlToSet).attr('disabled', 'disabled');
        $(controlToSet).attr('checked', false);
        alert('checked and checked');
    }

    if (control1.is(':checked') && control2.is(':checked') == false) {
        $(controlToSet).attr('disabled', false);
        alert('checked an unchecked');
    }

    if (control1.is(':checked') == false && control2.is(':checked') == false) {
        $(controlToSet).attr('disabled', 'disabled');
        $(controlToSet).attr('checked', false);
        alert('unchecked and unchecked');
    }
}

这些控件在web应用程序中使用,并且依赖于其他控件之一,以及当其中一个主题更改这些javascript代码应该执行的值时,但并非每次都是这样。我做错了什么?

您的浏览器可能使用了缓存版本的javascript。请尝试清除浏览器缓存和/或重新启动浏览器。

如果希望在进行更改时执行代码,则必须捕获
更改事件

您可以使用绑定功能:

control1.add(control2).change(function(){
     SetValues(controlToSet, control1, control2)
});

是否忘记了control1.is(':checked')==false和&control2.is(':checked')?

请创建一个复制问题的演示。您如何/何时调用
SetValues
?您所说的“进行更改”是什么意思?是否因为您缺少选中control2而不选中control1的情况?您缺少“control1未选中,但control2已选中”的条件?我将添加明显缺少的jQuery标记。此控件用于web应用程序,如果其中一个控件正在更改值(选中、取消选中、禁用),我希望执行此代码。这些控件取决于其他控件之一。我把这个警告信息放在这里,这样我就可以看到,当我更改一个复选框时,javascript代码似乎没有被执行。这就是问题所在。@Florina我编写的代码在两个控件中的一个发生更改时调用您的函数。你测试过了吗?