【问题标题】:How to get if checkbox is checked or not [duplicate]如何获取复选框是否被选中[重复]
【发布时间】:2019-04-25 10:52:44
【问题描述】:

所以我必须在this soccer website 那里有一个复选框列表(我是注册)来选择首选位置。例如,当有人输入中心攻击复选框和守门员复选框时,我想向我发送所选位置的列表。如您所见,这是一张带有每个位置的复选框列表的图片

所以我使用此代码查看是否选中了相关复选框(每个复选框/位置都重复):

if (document.getElementById("goalie").checked == true) {
    var Goalie = "Goalie";
};

然后,我将所有字符串与:

PreferedPositions = Goalie + " " + LeftDefense + " " + CenterLeftDefense + " " + CenterRightDefense + " " + RightDefense + " " + LeftMidfield + " " + CenterMidfield + " " + rightmidfield + " " + LeftAttack + " " + CenterAttack + " " + RightAttack + ".";

然后我将它发送到 php,以便我可以使用 ajax 将其通过电子邮件发送给所有者:

$.ajax({
      type: "POST",
      url: "registration.php",
      data: {
            PostPreferedPositions: PreferedPositions
      },
success: function (res) {}
});

但是当我测试它时,电子邮件出来了:

“首选位置:undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined.”

如果我没有选中任何复选框,我理解所有未定义的内容。但无论我选择了多少复选框,都会发生这种情况。就像我选择了守门员和中锋一样,我会期望:

“首选位置:守门员 undefined undefined undefined undefined undefined undefined undefined undefined 中锋-进攻 undefined。”

但事实并非如此。我知道我可以通过在语句中添加 else if 来轻松修复所有未定义的问题,但我不知道为什么所有位置都返回为未定义。

【问题讨论】:

  • 你应该encodeURIComponent()就可以了。但这些变量在我看来 undefined
  • 可能是因为您在 if 语句中声明了 Goalie 变量。这就是为什么 PreferedPositions 无法读取该变量的原因。尝试在 if 语句之外声明 Goalie 变量。
  • 真的,现在每个人都应该使用FormData。阅读示例。哦,与XHR2一起使用。
  • @StackSlave 不只是一个检查复选框是否被选中的问题,如果是,那么我将一个字符串分配给变量。对我来说,它看起来几乎没有错误,所以我不知道为什么 vars 应该是未定义的。另外,我不确定我是否理解在这种情况下 encodeURIComponent() 有什么用(几乎没有使用它,所以我不知道,但据我所知,它只是对字符串进行编码)。
  • 您应该包含相关代码。不要指望我们会通读您的所有网页。

标签: javascript php html checkbox


【解决方案1】:

变量是undefined,因为变量不存在,因为只有在选中复选框时才开始声明变量。但是,我建议不要为每个位置声明单个变量。通过迭代页面上的所有复选框,您可能会更好,快速模拟这个(这可能会有所帮助): https://playcode.io/299838?tabs=console&script.js&output

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-01
    • 2015-08-30
    • 2021-02-05
    • 2019-01-12
    • 2017-09-14
    相关资源
    最近更新 更多