0

我在 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 代码应该执行的值时,但并非一直都在发生这种情况。我做错了什么?

4

3 回答 3

0

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

于 2013-03-22T13:16:47.323 回答
0

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

您可以使用更改绑定功能:

control1.add(control2).change(function(){
     SetValues(controlToSet, control1, control2)
});
于 2013-03-22T13:16:50.550 回答
0

确实忘记了 control1.is(':checked') == false && control2.is(':checked') 的情况吗?

于 2013-03-22T13:17:40.887 回答