2016-10-06 51 views
0

我有一個名爲etapes的複選框。我想獲得所有檢查的etapes的值並將其存儲在單個字符串中。使用jquery獲取複選框列表的值checked

所以嘗試這樣做:

$('[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

我有例如該複選框''當我想你的溶液I得到一個空白 –

+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