【问题标题】:Set hidden checkbox to true if other data condition is met如果满足其他数据条件,则将隐藏复选框设置为 true
【发布时间】:2026-02-11 18:10:01
【问题描述】:

我有一个分成Kendo UI Panel Bar 的表格。在第一个面板中,我有一个字段,当填充任何文本时,会选中一个当前不可见且位于其下方折叠面板内的复选框。

我的问题是复选框没有选中。我已经阅读了一些关于复选框在不可见时如何被禁用的帖子。有解决办法吗?

    function Validate(uid) {
    if ($("#SomeNumber_" + uid).val().length > 0) 
    {
        $("#MyCheckBox").attr('checked', true);  //This checkbox is display:none at the time this is set
        //Also tried these, but they didn't work:
        //$("#MyCheckBox").click();
        //var myCheckBox= document.getElementById("MyCheckBox");
        //myCheckBox.checked = true;
    }
}

【问题讨论】:

  • 当你说不可见时,你指的是 CSS display: none;?
  • 如果复选框将始终保持隐藏状态,那么为什么不使用隐藏的表单字段并存储布尔值呢?
  • 是的。 Display:none 在父元素上设置。不,复选框并不总是隐藏的。在用户完成表单的各个部分以分解表单并使其不那么压倒性之前,某些表单字段会被隐藏。我确实找到了问题(对下面的解决方案发表评论)。我在项目的某个地方潜伏着一个具有相同 ID 的元素,它正在被检查,而另一个则没有。非常感谢您的帮助和快速回复,但我很抱歉在我发布之前没有发现这不是一件愚蠢的事情。

标签: javascript jquery jquery-ui kendo-ui


【解决方案1】:

刚刚通过按钮动态更改复选框来测试复选框的显示无。它适用于显示无设置。

http://jsfiddle.net/jmsessink/hcWf8/1/

以下内容会将您的复选框的属性设置为“已选中”-

这-

$('#MyCheckBox').attr('checked', true)

还有

$('#MyCheckBox').attr('checked', 'checked')

还有

document.getElementById('MyCheckBox').checked = true;

还有

document.getElementById('MyCheckBox').checked = 'checked';

*edit - 更新 jsfiddle 版本以显示这四种方法

【讨论】:

  • 所有答案都有效。我发现隐藏在项目的其他地方有一个具有相同 ID 值的元素。这是检查一个,而另一个不检查,让我相信出了点问题。感谢您的帮助,并对最终愚蠢的问题表示歉意。
【解决方案2】:

试试$("#MyCheckBox").prop('checked', true);

我有一个类似的用例,可以证明可以检查隐藏的复选框。

我认为使用 attr 的正确方法是 $("#MyCheckBox").attr('checked', 'checked');

【讨论】:

    最近更新 更多