【问题标题】:`document.getElementById("is-student").checked` is not take the correct value from the checkbox`document.getElementById("is-student").checked` 没有从复选框中获取正确的值
【发布时间】:2021-01-29 05:03:39
【问题描述】:

嗨,这是一个复选框的 HTML 代码。我需要取复选框的值(真/假)。

<input id="is-student" type="checkbox" value="Student Related"/>
<input id="open-new" type="button" value="Open New" onclick="openNew();"/>

这是从复选框中获取输入值的 java 脚本代码。

var testJson = JSON.stringify({
  reference: [{
     studentRelated: document.getElementById("is-student").checked
  }]
});

function openNew()
{
    window.openNew(testJson);
}

我的问题是 document.getElementById("is-student").checked 总是返回 false。如果我们点击复选框,这部分返回false,如果我们没有点击复选框,那么也返回false。

我需要解决这个问题,当我们单击复选框时,document.getElementById("is-student").checked 部分应返回 true,如果我们没有单击,则应返回 false。我该怎么做?

【问题讨论】:

标签: javascript html


【解决方案1】:

您需要在openNew 方法内移动testJson,以便更新值。现在 JSON 是在加载时设置的,并且值不会在复选框选择时更新。试试这个代码

function openNew()
{

  var testJson = JSON.stringify({
    reference: [{
       studentRelated: document.getElementById("is-student").checked
    }]
  });
    window.open(testJson);
} 

【讨论】:

    【解决方案2】:

    您的testJson 变量似乎是在调用您的函数之前设置的,因此除非您的复选框被预先选中,否则studentRelated 将始终为假。 如果您希望它在单击按钮时反映复选框的状态,则需要评估是否在调用函数时检查它,而不是之前。

    【讨论】:

      猜你喜欢
      • 2011-02-09
      • 2021-05-29
      • 1970-01-01
      • 2015-05-28
      • 2014-08-13
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      相关资源
      最近更新 更多