【问题标题】:Check Boxes, Store in Array and utilize switch statement [closed]复选框,存储在数组中并利用 switch 语句[关闭]
【发布时间】:2015-04-17 05:28:11
【问题描述】:

提前感谢任何回答此问题的人。

我需要什么帮助: 如何显示通过自动更新它们选择的复选框的数量?例如:如果我从 SECTION A 中选择 1 个复选框,它将显示 SECTION A 中的 1。如果我选​​择另一个框,它将自动从 SECTION A 中显示 2,但它会如果未选中该复选框,还减去该值。有点像计数

再次感谢您对我的帮助和您的宝贵时间。

    var infoArray=new Array();

function userSelection(userInput)
{
  var itemName = userInput.name;
  var itemName2 = userInput.value;

 switch(itemName)
 {
  case "sectionR":
 {
  switch(itemName2)
 {
  case "repair car":
       infoArray[0]=1;
  break;

  case "wood work":
       infoArray[0]=1;
  break;

  case "explore forest":
       infoArray[0]=1;
  //end of case "sectionR"
 }
  //end of sub switch
 }
  break;

   case "sectionA":
 {
  switch(itemName2)
 {
  case "clothing design":
       infoArray[1]=1;
  break;

  case "public singing":
       infoArray[1]=1;
  break;

  case "decorate":
       infoArray[1]=1;
  //end of sub switch
 }
 // end of case sectionA
 }
 //end of main switch
 }  
    var userOutput=new Array();
   for(var i=0; i<itemName.length; i++)
   {
      userOutput.push(itemName[i].checked);
   }

document.getElementById("selectionTotal").innerHTML = "R SECTION" + "&nbsp" + "," + "&nbspA SECTION" + "<br>" + 
infoArray;

 //end of userSelection() 
}

【问题讨论】:

  • 也许在处理复选框或单选输入w3school link时查看checked属性

标签: javascript arrays html switch-statement


【解决方案1】:

你的函数的前两行有问题:

var userInput = document.getElementsByName('sectionR');
var userOutput = document.getElementsByName('sectionR').value;

首先,它可以写得更简单更优雅:

var userInput = document.getElementsByName('sectionR');
var userOutput = userInput.value;

但这仍然会包含相同的错误。 document.getElementsByName("sectionR") 返回一个包含名称为“sectionR”的所有元素的数组。所以你不能从数组中得到一个值。您必须遍历元素:

var userOutput = []; // or var userOutput = new Array();
for (var i=0; i < userInput.length; i++) {
    userOutput.push(userInput[i].value);
}

现在,您的数组userOutput 中所有名称为“sectionR”的元素的值都得到了,以后可以使用它们。

还有一个关于你的 for 循环的通知。您声明 x=0 时没有关键字 var。这使得变量x 在全局范围内可见。如果您的代码较长并且您在代码的其他地方使用了具有相同名称的变量,则可能会导致一些意外行为。

【讨论】:

  • 这很有帮助,谢谢。如果您有时间,我将问题重新措辞了一下,您介意重新审查吗?
  • @ClintonVlasak 不幸的是,你现在把事情搞砸了。明天我会再次检查它,因为现在在欧洲已经很晚了,我需要休息一下。在此之前请耐心等待。
  • 大声笑,谢谢你的直截了当。如果你有时间看我的代码,我几乎完全修改了它。我得到它来显示每个索引的各个值,这很棒。但是,您知道如何显示输出以显示选中的复选框数量吗?
猜你喜欢
  • 1970-01-01
  • 2015-09-25
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
  • 2011-05-23
  • 1970-01-01
  • 2021-03-09
相关资源
最近更新 更多