Chcę przejść przez pole wyboru „locationthemes” i zbudować ciąg ze wszystkimi wybranymi wartościami. Zatem po zaznaczeniu pola wyboru 2 i 4 wynik będzie wyglądał następująco: „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>
Sprawdziłem tutaj: http://api.jquery.com/checked-selector/, ale nie ma przykładu, jak wybrać grupę checkbox po jej nazwie.
Jak mogę to zrobić?
javascript
jquery
Flo
źródło
źródło
$('input:checkbox[name=locationthemes]:checked').each(function() { // add $(this).val() to your array });
Działające demo
LUB
Użyj
is()
funkcji jQuery :$('input:checkbox[name=locationthemes]').each(function() { if($(this).is(':checked')) alert($(this).val()); });
Wcześniejsze
źródło
Mapowanie tablicy jest najszybsze i najczystsze.
var array = $.map($('input[name="locationthemes"]:checked'), function(c){return c.value; })
zwróci wartości jako tablicę, taką jak:
array => [2,3]
założenie zamku i stodoły zostało sprawdzone, a pozostałych nie.
źródło
$("#locationthemes").prop("checked")
źródło
Korzystanie z
map
funkcji jqueryvar checkboxValues = []; $('input[name=checkboxName]:checked').map(function() { checkboxValues.push($(this).val()); });
źródło
You can also use the below code $("input:checkbox:checked").map(function() { return $(this).val(); }).get();
źródło
A więc wszystko w jednej linii:
var checkedItemsAsString = $('[id*="checkbox"]:checked').map(function() { return $(this).val().toString(); } ).get().join(",");
.. uwaga na temat selektora
[id*="checkbox"]
, spowoduje to pobranie dowolnego elementu zawierającego ciąg „checkbox”. Trochę niezdarnie tutaj, ale naprawdę dobrze, jeśli próbujesz wyciągnąć wybrane wartości z czegoś takiego jak .NET CheckBoxList. W takim przypadku „pole wyboru” byłoby nazwą nadaną kontrolce CheckBoxList.źródło
Źródło - więcej szczegółów
Uzyskaj wartość wybranych pól wyboru za pomocą jQuery
Następnie piszemy skrypt jQuery, aby uzyskać wybraną wartość pola wyboru w tablicy za pomocą jQuery each (). Używając tej funkcji jQuery, uruchamia pętlę, aby pobrać sprawdzoną wartość i umieścić ją w tablicy.
źródło
var SlectedList = new Array(); $("input.yorcheckboxclass:checked").each(function() { SlectedList.push($(this).val()); });
źródło
var voyageId = new Array(); $("input[name='voyageId[]']:checked:enabled").each(function () { voyageId.push($(this).val()); });
źródło
var voyageIds = $('input[name="voyageId[]"]:checked:enabled').map(function() {return this.value; }).get();
$(document).ready(function(){ $(".btn-submit").click(function(){ $('.cbCheck:checkbox:checked').each(function(){ alert($(this).val()) }); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" id="vehicle1" name="vehicle1" class="cbCheck" value="Bike"> <label for="vehicle1"> I have a bike</label><br> <input type="checkbox" id="vehicle2" name="vehicle2" class="cbCheck" value="Car"> <label for="vehicle2"> I have a car</label><br> <input type="checkbox" id="vehicle3" name="vehicle3" class="cbCheck" value="Boat"> <label for="vehicle3"> I have a boat</label><br><br> <input type="submit" value="Submit" class="btn-submit">
źródło
Nieco bardziej nowoczesny sposób:
const selectedValues = $('input[name="locationthemes"]:checked').map( function () { return $(this).val(); }) .get() .join(', ');
Najpierw znajdujemy wszystkie zaznaczone pola wyboru o podanej nazwie, a następnie map () jQuery wykonuje iterację po każdym z nich, wywołując wywołanie zwrotne w celu uzyskania wartości i zwracając wynik jako nową kolekcję jQuery, która teraz zawiera wartości pól wyboru. Następnie wywołujemy get (), aby uzyskać tablicę wartości, a następnie join (), aby połączyć je w pojedynczy ciąg - który jest następnie przypisywany do stałej selectedValues.
źródło