[javascript] jQuery를 사용하여 선택한 확인란의 값을 가져옵니다.
확인란 그룹 ‘locationthemes’를 반복하고 선택한 모든 값으로 문자열을 만들고 싶습니다. 따라서 확인란 2와 4를 선택하면 결과는 “3,8”이됩니다.
<input type="checkbox" name="locationthemes" id="checkbox-1" value="2" class="custom" />
<label for="checkbox-1">Castle</label>
<input type="checkbox" name="locationthemes" id="checkbox-2" value="3" class="custom" />
<label for="checkbox-2">Barn</label>
<input type="checkbox" name="locationthemes" id="checkbox-3" value="5" class="custom" />
<label for="checkbox-3">Restaurant</label>
<input type="checkbox" name="locationthemes" id="checkbox-4" value="8" class="custom" />
<label for="checkbox-4">Bar</label>
http://api.jquery.com/checked-selector/ 여기에서 확인 했지만 이름으로 확인란 그룹을 선택하는 방법에 대한 예는 없습니다.
어떻게 할 수 있습니까?
답변
jQuery에서 다음과 같은 속성 선택기를 사용하십시오.
$('input[name="locationthemes"]:checked');
이름이 “locationthemes”인 선택된 모든 입력을 선택하려면
console.log($('input[name="locationthemes"]:checked').serialize());
//or
$('input[name="locationthemes"]:checked').each(function() {
console.log(this.value);
});
에서 VanillaJS
[].forEach.call(document.querySelectorAll('input[name="locationthemes"]:checked'), function(cb) {
console.log(cb.value);
});
ES6 / 확산 연산자에서
[...document.querySelectorAll('input[name="locationthemes"]:checked')]
.forEach((cb) => console.log(cb.value));
답변
$('input:checkbox[name=locationthemes]:checked').each(function()
{
// add $(this).val() to your array
});
작동 데모
또는
jQuery의 is()
기능 사용 :
$('input:checkbox[name=locationthemes]').each(function()
{
if($(this).is(':checked'))
alert($(this).val());
});
답변
배열 매핑이 가장 빠르고 깨끗합니다.
var array = $.map($('input[name="locationthemes"]:checked'), function(c){return c.value; })
다음과 같은 배열로 값을 반환합니다.
array => [2,3]
성과 헛간이 확인되고 나머지는 확인되지 않았다고 가정합니다.
답변
$("#locationthemes").prop("checked")
답변
jquery의 map
기능 사용
var checkboxValues = [];
$('input[name=checkboxName]:checked').map(function() {
checkboxValues.push($(this).val());
});
답변
You can also use the below code
$("input:checkbox:checked").map(function()
{
return $(this).val();
}).get();
답변
따라서 모두 한 줄로 :
var checkedItemsAsString = $('[id*="checkbox"]:checked').map(function() { return $(this).val().toString(); } ).get().join(",");
.. 선택자에 대한 참고 사항 [id*="checkbox"]
, “checkbox”문자열이있는 모든 항목을 가져옵니다. 여기서는 약간 어색하지만 .NET CheckBoxList와 같은 항목에서 선택한 값을 가져 오려는 경우 정말 좋습니다. 이 경우 “checkbox”는 CheckBoxList 컨트롤에 지정한 이름입니다.