【问题标题】:finding out if a checkedbox is selected找出是否选中了复选框
【发布时间】:2016-09-25 17:55:04
【问题描述】:

我正在使用 EditableGrid 对 HTML 表进行排序。该表是通过 MVC 控制器(作为字符串)生成的,并具有 id(#htmlgrid)。表格显示正确。我知道如何获得行数和列数,但我不知道如何找到复选框的值。我使用 JavaScript 函数来获取这些值。在(Google Chrome)调试器中,我找不到复选框的值。 我的桌子是这样的:

<tr>
  <th style="border:2px solid grey">selected</th>
  <th style="border:2px solid grey">id</th>
  <th style="border:2px solid grey">name</th>
</tr>

在我的函数中,我使用这些来获取行数和项目数组。

var length = document.getElementById(tableId).rows.length;
var container = document.getElementById(tableId).rows;

如您所见,第一列是复选框所在的位置。此外,每个复选框都有一个 id,如下所示:

<td id="checkbox0">false</td>

如何访问值“false”(在这种情况下)?我试图通过document.getElementById("checkbox0").checked 访问这个值,如果我为表设置了一个变量,比如:

var container = document.getElementById(tableId);//html table
container[2].children[0];//table row 2, column 0

我确实获得了很多属性,但我无法清楚地看到是否被选中。

【问题讨论】:

  • 作为示例,您没有 real 复选框 (&lt;input type="checkbox" /&gt;)。你可以试试这样if(container.rows[2].cells[0].innerHTML.trim() == 'false'){...}
  • 这个方法很遗憾只提供(没有 trim())这个:&lt;input type="checkbox"&gt;,但不是价值

标签: javascript html editablegrid


【解决方案1】:

document.getElementById("checkbox0").innerHTML 怎么样?这只是为了获取标签td 之间的innerHTML。我很困惑,因为你问的是复选框值,但我没有看到任何 input type="checkbox" (或类似的东西)

(应该在评论里。但是因为我不能发表评论,我想我只能选择放在这里)

【讨论】:

  • 因为它不是真正的复选框,所以它看起来和行为都像它,这要感谢 EditableGrid。如果我执行 innerHTML,这将返回 "&lt;input type="checkbox"&gt;"。它是什么类型的变量,由 EditableGrid 定义。它看起来像这样(window.onload):editableGrid.load({ metadata: [ { name: "id", datatype: "boolean", editable: true }, { name: "sensorid", datatype: "string", editable: false }, { name: "sensorname", datatype: "string", editable: false } ] });(对不起格式)
  • 对EditableGrid了解不多,但我觉得你可以试试:document.getElementById("checkbox0").getElementsByTagName("input").checked
【解决方案2】:

您可以通过以下方式获取复选框的状态:

$('#checkbox0').is(":checked");

返回真或假。

要选中所有选中的复选框,您可以选中

$('input[type="checkbox"]:checked')

希望对你有帮助

【讨论】:

    【解决方案3】:

    好吧,我觉得自己很笨,我应该觉得自己很笨。答案很简单……为了初始化一个表(使用可编辑网格),我创建了一个全局 JavaScript 对象。我只需要在我的代码中这样做:

    var value = editableGrid.getCell(row, column).firstChild.checked;
    

    目前尚不清楚,为什么开发人员选择这样做,但这就是我获得正确值的方式。仍然非常感谢大家花时间阅读并尝试解决它。​​

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2016-03-04
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多