如何获取是否选中复选框

时间:2019-04-25 02:28:44

标签: javascript php html checkbox

所以我必须做this soccer website,其中有一个复选框列表(即注册)以选择首选位置。例如,当某人输入中心进攻复选框和守门员复选框时,我希望向我发送所选位置的列表。如您所见,这是一张图片,其中包含每个位置的复选框列表

The checkboxes layout

因此,我使用此代码来查看是否选中了所涉及的复选框(每个复选框/位置均重复):

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) {}
});

但是当我测试它时,电子邮件中显示:

“首选职位:未定义未定义未定义未定义未定义未定义未定义未定义未定义未定义。”

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

“首选位置:守门员未定义未定义未定义未定义未定义未定义中锋进攻未定义。”

但事实并非如此。我知道我可以通过在语句中放置else来轻松解决所有未定义的问题,但是我不知道为什么所有位置都会返回未定义的状态。

1 个答案:

答案 0 :(得分:-1)

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