2013-11-26 73 views
0

我正在用單選按鈕創建一個HTML格式的調查。For循環使用jQuery

用戶回答5個問題,並命中提交按鈕,調用一個JavaScript,我想要一個循環從每個單選按鈕獲取值,並將它們放在一起變成一個變量。

我的問題是,我不能找出正確的方式來使用名爲currentVal的變量「我」。

我找的,應該是這樣一個變量的結果:「VAL1,val5,VAL3,VAL1,VAL4」

在這個全新的,所以如果你能保持答案noobfriendly;)

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 

<script type="text/javascript"> 

    $(document).ready(function() 
    { 
     $('#check').click(function() 
     { 
      for (var i=0; i < 5; i++) 
      { 
       var currentQuestion = i; 
       var currentVal = $("input:radio[name="+ i +"]:checked").val(); 
      } 

      document.write(currentVal); 

     }); 
    }) 

</script> 
</head> 

<body> 
<form name="form" method="post" action=""> 
Question 1<br/> 
<input type="radio" name="1" value="val1"/> Ans1 
<input type="radio" name="1" value="val2"/> Ans2 
<input type="radio" name="1" value="val3"/> Ans3 
<br/><br/> 
Question 2<br/> 
<input type="radio" name="2" value="val1"/> Ans1 
<input type="radio" name="2" value="val2"/> Ans2 
<input type="radio" name="2" value="val3"/> Ans3 
<br/><br/> 
Question 3<br/> 
<input type="radio" name="3" value="val1"/> Ans1 
<input type="radio" name="3" value="val2"/> Ans2 
<input type="radio" name="3" value="val3"/> Ans3 
<br/><br/> 
Question 4<br/> 
<input type="radio" name="4" value="val1"/> Ans1 
<input type="radio" name="4" value="val2"/> Ans2 
<input type="radio" name="4" value="val3"/> Ans3 
<br/><br/> 
Question 5<br/> 
<input type="radio" name="5" value="val1"/> Ans1 
<input type="radio" name="5" value="val2"/> Ans2 
<input type="radio" name="5" value="val3"/> Ans3 

<input type="button" value="Test" id="check" /> 
</form> 
</html> 
+0

你的第一個問題是,你的名字組1,而你的索引從0開始。 – David

+0

你可以使用jQuery。每個函數 – Michael

+0

你的第二個問題是範圍。你在for循環中聲明'currentVal',然後嘗試在你的for循環之外使用它。 – David

回答

1

嘗試this...

$('#check').click(function() 
     { 
      var temp =''; 
      $(':radio').each(function(){ 
       if($(this).is(':checked')) 
        { 
         temp += $(this).val() + ','; 
        } 
       }); 
      alert(temp.slice(0, -1)); 
     }); 
+0

完美的作品!非常感謝Arun – RedHawkDK

0

首先,所有的字符串追加到commaseperated值,這樣做:

var result = ""; 
for (var i = 0; i < 5; i++) { 
    if(result.length > 0) { 
     result += ","; 
    } 
    result += $("input:radio[name=" + (i + 1) + "]:checked").val(); 
} 
document.write(result); 

的恕我直言最好的soluti上會增加一個類(例如「myForm的」),以您的形式和使用jQuery的每個()函數:

var result = ""; 
$.each($(".myForm input:radio"), function(index, var) { 
    if(result.length > 0) { 
     result += ","; 
    } 
    result += var.val(); 
}); 
document.write(result); 
+1

你關於'currentVal'範圍的開頭聲明是錯誤的:'var'創建帶有函數範圍的變量,_not_塊範圍。你的第一塊代碼是朝着正確的方向邁出的一步,但仍然不正確,因爲'i'需要從1開始,而不是0,'for'和'.each()'版本都將逗號加到「結果」字符串的開始,而不是值之間。 – nnnnnn

+0

更正後,我一定有點困惑。 :) – maxdev

+0

Thx很多:D那麼正確的代碼將如何?如果我要使用$ .each()版本(我真的很新) – RedHawkDK