2016-08-02 12 views
1

私はいくつかのチェックボックスを使ってポーリングページを作成しています。そして、私は、各チェックボックスがクリックされた回数をカウントする配列resultsを持っています。インデックスを使用してチェックボックスから値を抽出する

<h2>What's your favorite pet</h2> 
<form> 
<input type="checkbox" name="cb[0]" value="Cats"/> 
<input type="checkbox" name="cb[1]" value="Dogs"/> 
<input type="checkbox" name="cb[2]" value="Spiders"/> 
<input type="checkbox" name="cb[3]" value="Whales"/> 
</form> 

また、私はハード彼らの結果と連結するためのオプション(ネコ、イヌを、...)コード化されている文字列変数と警告ウィンドウを表示し、「結果の表示」ボタンを持っています。ここでは例です:

var myResults = "Cats "+results[0] + " Dogs "+results[1] + " Spiders "+results[2]; 

私の問題は、私は世論調査に新しいオプションを追加したい場合は、私もmyResults文字列に手動で追加する必要があるということです。それを自動的に行うにはどうすればいいですか?

私はいくつか試しましたが、動作させることができませんでした。ここにあります:

var allCheckboxes = document.getElementsByTagName("input"); //I only have checkboxes on the page 
var resultsReady=""; 
for(var i=0;i<allCheckboxes.length;i++){ 
var currentVal = $("input")[i].val(); //this expression is false for some reason 
resultsReady.concat(currentVal,results[i]," ");} 

$("input")[2].val();はなぜ機能しませんか。私はそれが孤立していて動作していないので、動作していないことを知っています。

私も$("input").get(i).val();を試しましたが、うまくいかなかったのですが、私はそれを修正する方法がわかりません。

最後に試したのは$("input['cb[i]']")でしたが、この表現が機能するかどうかはわかりません。

答えて

2

それはあなたが探しているeq()です:

$("input").eq(i).val(); 
// or 
$("input:eq(" + i + ")").val(); 

あなたがこれを使用することができますが、この場合、DOM要素を取得しますので、それは、value代わりのval()です。

$("input")[i].value; 
関連する問題