为什么我无法使用JavaScript取消勾选此复选框?

时间:2014-10-13 14:50:57

标签: javascript asp.net

我的ASP代码如下:

<asp:CheckBox ID="chk" runat="server" Checked="false"/>

在我的JavaScript中:

document.getElementById('chk').checked = result.isUserSpecific;
    if (result.isUserSpecific === 'False') {
        document.getElementById('chkUserSpecific').checked = 'False';
    }

当结果为true时,我现在能够通过JavaScript勾选复选框,但我似乎无法取消勾选该框。

我尝试将'False'更改为'false',看来返回的结果肯定是假的。任何指针都会受到欢迎。

2 个答案:

答案 0 :(得分:3)

您需要为checked属性分配一个布尔值,而不是字符串。

falsetrue不是'False'而不是'false'

强制转换为布尔值时,

'false''False'都是真值。

答案 1 :(得分:2)

ASP.NET通过为它们添加前缀来确保HTML id属性在其控件上是唯一的。在将chk添加到您的网页之前,您宣布为c100_c100_chk的内容正在转换为document.querySelector()

支持此操作的最简单方法是使用document.querySelector('[id$="chk"]').checked = ...; ,传入与元素ID的末尾匹配的属性选择器:

true

此外,字符串值'False'是 truthy 值,并将评估为false。您需要将其设置为'False',而不是document.getElementById('chkUserSpecific').checked = false;

{{1}}