开关/案例变量错误

时间:2012-12-02 15:47:42

标签: javascript html5 switch-statement

我正在尝试输入四个文本框,并根据单选复选框选项显示它。我在这里讨论了更多:

Most efficient coding style for forms with multiple radio buttons

我遇到以下代码行的问题:

//Gets value from input boxes  into array
var values = $('.names').map(function() { 
  if(this.value != '') return this.value; 
}).get();

//Check radio boxes
var selectedValue = $('input[name=friend]:checked').val();

//Determines array length
var length = values.length;

//if only one name
if (length==1) {
  switch(selectedValue) {
    case "na":
      values = values;
      break;
    case "van":
      values = values.join("och van");
      break;
    case "vanner":
      values = values.join("och vanner");
      break;
  }
}
alert(selectedValue);

它不会将值“och van”或“och vanner”添加到变量“values”中。独立运行一切正常。即“values”返回名称,“selectedValue”返回选中的单选框,“length”返回数组中的元素数。但是当我尝试通过If语句组合它时,切换大小写它不起作用。

有问题的Html在这里:

    <div id="inputboxes">
      <input type="text" name="name1" id="names1" class="names" value="" placeholder="1) Name Here . . .">
      <input type="text" name="name2" id="names2" class="names" value="" placeholder="2) Name Here . . .">
      <input type="text" name="name3" id="names3" class="names" value="" placeholder="3) Name Here . . .">
      <input type="text" name="name4" id="names4" class="names" value="" placeholder="4) Name Here . . .">
    </div>
  </li>
</ul>
<ul>
  <li>
    <div id="radios1">
      <input type="radio" id="na" value="na" name="friend" class="{src:'img/n.people.png',checked:'img/n.people.c.png',hover:'/img/unchecked.png'}"  checked="checked"/> 
      <input type="radio" id="van" value="van" name="friend" class="{src:'img/o.person.png',checked:'img/o.person.c.png',hover:'/img/unchecked.png'}"  /> 
      <input type="radio" id="vanner" value="vanner" name="friend" class="{src:'img/m.people.png',checked:'img/m.people.c.png',hover:'/img/unchecked.png'}"  /> 
    </div>

2 个答案:

答案 0 :(得分:0)

问题是join没有任何要连接的元素(数组只有一个元素),因此它不会将分隔符字符串放入数组中。你需要有两个以上的连接元素来实际插入它们之间的东西。我注意到这里没有拼写出来,但我想从名称中可以看出这一点。

答案 1 :(得分:0)

固定。

在开头定义变量,并将其替换为:

var och = " och ";
var van = " och vän"
var vanner =" och vänner";
var nameout;

和更新的IF声明:

if (length==1)
switch(selectedValue)
 {
   case "na":
   nameout = values;
   break;
   case "van":
   nameout = values + van;
   break;
   case "vanner":
   nameout = values + vanner;
   break;

 }
}