名前配列を持ついくつかのチェックボックスがあり、チェックボックスの出力をコンマ区切りのリストを持つ変数にしたい。
<input type="checkbox" name="example[]" value="288" />
<input type="checkbox" name="example[]" value="289" />
<input type="checkbox" name="example[]" value="290" />
たとえば、最初と最後のボックスが選択されている場合、出力は次のようになります。
var output = "288,290";
JQueryでこれを行うにはどうすればよいですか?
:checkbox
と名前属性セレクター(:checkbox[name=example\\[\\]]
)を使用して、name="example[]"
のチェックボックスのリストを取得し、:checked
フィルターを使用して選択したチェックボックスのみを取得できます。
次に、.map
関数を使用して、選択したチェックボックスから配列を作成できます。
var output = $.map($(':checkbox[name=example\\[\\]]:checked'), function(n, i){
return n.value;
}).join(',');
現在テストされていませんが、次のことが機能するはずです。
_var valuesArray = $('input:checkbox:checked').map( function () {
return $(this).val();
}).get().join();
_
少し休憩した後、$(this).val()
ではなくネイティブDOMを使用するように編集しました(コンテキストでは不必要に高価です)。
_var valuesArray = $('input:checkbox:checked').map( function() {
return this.value;
}).get().join(",");
_
var valuesArray = $('input[name="valuehere"]:checked').map(function () { return this.value; }).get().join(",");
いつも私のために働く
jQuery複数のチェックボックスの値を取得し、コンマ区切りの文字列リストとして出力する方法。
https://www.tutsmake.com/jquery-multiple-checkbox-values-to-comma-separated-string/
$(document).ready(function() {
$(".btn_click").click(function(){
var programming = $("input[name='programming']:checked").map(function() {
return this.value;
}).get().join(', ');
alert("My favourite programming languages are: " + programming);
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Get Values of Selected Checboxes</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<form>
<h3>Select your favorite Programming Languages :</h3>
<label><input type="checkbox" value="PHP" name="programming"> PHP</label>
<label><input type="checkbox" value="Java" name="programming"> Java</label>
<label><input type="checkbox" value="Ruby" name="programming"> Ruby</label>
<label><input type="checkbox" value="Python" name="programming"> Python</label>
<label><input type="checkbox" value="JavaScript" name="programming"> JavaScript</label>
<label><input type="checkbox" value="Rust" name="programming">Rust</label>
<label><input type="checkbox" value="C" name="programming"> C</label>
<br>
<button type="button" class="btn_click" style="margin-top: 10px;">Click here to Get Values</button>
</form>
</body>
</html>