【问题标题】:Set a checkbox based on its value根据其值设置复选框
【发布时间】:2012-11-12 07:20:49
【问题描述】:

我目前正在开发一个 javascript 和 php 项目。我有一个具有相同 ID chkCategory 和名称 chkCategory[] 的复选框数组。然后我让 PHP 返回一些包含各种类别的 json,我想为 json 中的每个类别设置每个复选框选中的属性。唯一标识每个复选框的是值。 IE。 json 可能有一个值MyCategory,因此应该设置具有值MyCategory 的复选框。

我知道您可以将$("#myCheckBoxId").attr("checked", true) 用于单个复选框,但不确定如何对具有特定值的特定复选框执行此操作。

感谢您提供的任何帮助。

【问题讨论】:

  • 您不能在 JavaScript 中使用相同的 ID。
  • 这是真的 - 在多个地方使用相同的 ID 会导致意外和不可预知的结果。看看它对@null 的用户名做了什么:P(我们以前见过吗?我已经开过这个玩笑了吗?)
  • @NULL,你可以, 例如$('input[id="someID"]'),但你当然不应该因为你不应该重复首先在您的 HTML 中使用 ID...

标签: php javascript json checkbox


【解决方案1】:

您可以在 JQuery 中使用标准的 CSS 属性选择器。例如:

$("input[value=MyCategory]")

将选择属性为value=MyCategory 的输入标签。如果有不同类型的inputs 具有该值,您也可以选择type=checkbox

$("input[type=checkbox][value=MyCategory]")

【讨论】:

  • @Lix 当然,但如果没有其他输入类型具有该值,上面的选择器将起作用——取决于您需要的选择性。
【解决方案2】:

如果你知道索引,你可以...

$("input[name='MyCategory']").eq(n).prop("checked", true);

如果你没有 jQuery...

document.getElementsByName("MyCategory")[n].checked = true;

【讨论】:

    【解决方案3】:

    在普通的 javascript 中,它看起来像这样:

    ​document.querySelector('input[value=checkboxValue]').checked = true;​​​​​​​​​​​​​​​​​​​​​​​​​​​​
    

    checkboxValue 是复选框的值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-16
      • 2017-08-22
      • 1970-01-01
      • 2011-09-20
      • 2016-07-30
      • 2015-09-09
      • 2020-06-25
      • 1970-01-01
      相关资源
      最近更新 更多