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

Why am I not able to untick this checkbox using JavaScript?

本文关键字:取消 复选框 JavaScript 为什么      更新时间:2023-09-26

我的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',似乎返回的结果肯定是 False。欢迎任何指示。

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

falsetrue'False',也不'false'.

'false''False' 在强制转换为布尔值时都是真值。

ASP.NET 通过

前缀来确保 HTML id属性在其控件上是唯一的。您声明为chk的内容在添加到页面之前会转换为类似c100_c100_chk的内容。

支持这一点的最简单方法是使用 document.querySelector() ,传入一个与元素 ID 末尾匹配的属性选择器:

document.querySelector('[id$="chk"]').checked = ...;

此外,字符串值 'False' 是一个真值,计算结果为 true 。您需要将其设置为 false ,而不是'False'

document.getElementById('chkUserSpecific').checked = false;