Используйте jQuery для получения значений выбранных флажков
Я хочу пропустить строку checkboxgroup '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/, но нет примера, как выбрать группу checkbox по его имени.
Как я могу это сделать?
Ответы
Ответ 1
В 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/spread
[...document.querySelectorAll('input[name="locationthemes"]:checked')]
.forEach((cb) => console.log(cb.value));
демонстрация
Ответ 2
$('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());
});
Ответ 3
Использование функции jquery map
var checkboxValues = [];
$('input[name=checkboxName]:checked').map(function() {
checkboxValues.push($(this).val());
});
Ответ 4
Карта массива является самой быстрой и чистой.
var array = $.map($('input[name="locationthemes"]:checked'), function(c){return c.value; })
будет возвращать значения в виде массива вроде:
array => [2,3]
предполагая, что замок и сарай были проверены, а остальные - нет.
Ответ 5
$("#locationthemes").prop("checked")
Ответ 6
You can also use the below code
$("input:checkbox:checked").map(function()
{
return $(this).val();
}).get();
Ответ 7
Итак, все в одной строке:
var checkedItemsAsString = $('[id*="checkbox"]:checked').map(function() { return $(this).val().toString(); } ).get().join(",");
.. примечание о селекторе [id*="checkbox"]
, оно будет захватывать любой элемент со строкой "checkbox" в нем. Немного неуклюжий здесь, но очень хорошо, если вы пытаетесь вытащить выбранные значения из чего-то вроде .NET CheckBoxList. В этом случае "checkbox" будет именем, которое вы дали элементу CheckBoxList.
Ответ 8
Источник - Подробнее
Получить выбранные флажки Значение с помощью jQuery
Затем мы пишем сценарий jQuery, чтобы получить выбранное значение checkbox в массиве, используя jQuery each(). Используя эту функцию jQuery, она запускает цикл, чтобы получить проверенное значение и помещать его в массив.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Get Selected Checkboxes Value Using jQuery</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".btn").click(function() {
var locationthemes = [];
$.each($("input[name='locationthemes']:checked"), function() {
locationthemes.push($(this).val());
});
alert("My location themes colors are: " + locationthemes.join(", "));
});
});
</script>
</head>
<body>
<form method="POST">
<h3>Select your location themes:</h3>
<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>
<br>
<button type="button" class="btn">Get Values</button>
</form>
</body>
</html>
Ответ 9
var voyageId = new Array();
$("input[name='voyageId[]']:checked:enabled").each(function () {
voyageId.push($(this).val());
});
Ответ 10
https://bytutorial.com/blogs/jquery/jquery-get-selected-checkboxes
См. Выше URL. Я хочу, чтобы некоторые изменения были выше, если я нажму 1, 5, 2 флажок в этом порядке, он должен предупредить "Вы выбрали 1,5, 2", как это сделать? нужна помощь заранее