2016-10-06 12 views
0

私はetapesという名前のチェックボックスをいくつか持っています。私はすべてのチェックetapesの値を取得し、単一の文字列で格納したいと思います。jqueryを使用してチェックボックスリストのチェック値を取得します

だから、この試みた:

$('[name="etapes"]:checked').each(function() { 
    indexer = indexer + 1; 
    if (indexer == 1) selectedEtapes = $(this).val(); 
    else selectedEtapes = selectedEtapes + "," + $(this).val(); 
}); 

をそれはうまくいきませんでした。だからどうすればこの問題を解決できますか?

答えて

1

簡単ソリューションは、あなたのコードのためにjQuery.map

var mapped = $('[name="etapes"]:checked').map(function() { 
 
    return this.value; 
 
}).get(); 
 
console.log(mapped.join(','));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input type="checkbox" name="etapes" value="Ouverte1" checked> 
 
<input type="checkbox" name="etapes" value="Ouverte2"> 
 
<input type="checkbox" name="etapes" value="Ouverte3" checked>

修正プログラムを使用することです:あなたはindex引数を受け入れたことはありません

var selectedEtapes = ''; 
$('[name="etapes"]:checked').each(function(index) { 
    if (!index) selectedEtapes += $(this).val(); 
    else selectedEtapes += "," + $(this).val(); 
}); 
+0

私はたとえば、このチェックボックスを持っている '<確認入力タイプ= "チェックボックス" 名前= "etapes" 値= "Ouverte"= "確認">私は私が得るあなたのソリューションをしようとしたとき'空白 –

+0

@LamloumiAfif - 私はスニペットで更新しました.. – Rayon

1

以下のようにmap()メソッドを使用して行うことができます。

var str = $('[name="etapes"]:checked').map(function() { 
 
     return $(this).val(); 
 
    }).get().join(); 
 

 
console.log(str)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="etapes" value="Ouverte1" checked="checked"> 
 
<input type="checkbox" name="etapes" value="Ouverte2"> 
 
<input type="checkbox" name="etapes" value="Ouverte3" checked="checked"> 
 
<input type="checkbox" name="etapes" value="Ouverte4" checked="checked">

+0

この ''のようなチェックボックスのリストがあります。 Yout命題は私に空の文字列を与える –

+0

それは動作するはずです。更新されたコードスニペットを参照してください。 @LamloumiAfif – Azim

関連する問題