2012-12-02 44 views
0

我想要輸入四個文本框,並根據收音機複選框選項顯示它。我更這裏討論它:開關/大小寫變量錯誤

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麪包車」,也不是「OCH vanner」添加到變量「值」。獨立運行一切工作。即「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> 
+0

後對應的JavaScript的HTML .. – Nelson

+0

更新。在這裏你走了。 –

+0

供將來參考:當您在stackoverflow上發佈代碼時,請勿使用選項卡。如果您剪切並粘貼,然後在發佈之前將您的選項卡轉換爲空格。 (我已經編輯過你的帖子,將標籤改爲空格,並且稍微清理一下佈局,所以不需要改變這個佈局)。 – Lee

回答

0

的問題是,加入沒有任何元素的加入(數組只有一個元素),因此它的分隔符字符串不放入數組。你需要有兩個以上的元素用於連接才能在它們之間插入一些東西。我注意到這不是拼寫出來的任何地方,但我想這應該從名稱上看起來很明顯。

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; 

} 
}