Как получить значение флажка множественный выбор в jquery
У меня есть выпадающий список с флажком ( jquery includeSelectAllOption), я хочу только последнее выбранное значение вместо всех отмеченных значений флажка.
<select class="form-control" id="change_city" multiple="multiple">
<?php foreach ($city_array as $key => $value) {
# code...
echo "<option value=".$value['city_id'].">".$value['city_name']."</option>";
} ?>
</select>
<script>
$(function() {
$('#change_city').multiselect({
includeSelectAllOption: true
});
});
</script>
2 ответа
См. ниже код, я надеюсь, может помочь вам
<label>Country:</label>
<select class="country" multiple="multiple" size="5">
<option>United States</option>
<option>India</option>
<option>United Kingdom</option>
<option>Brazil</option>
<option>Germany</option>
</select>
<button type="button">Get Values</button>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function(){
var countries = [];
$.each($(".country option:selected"), function(){
countries.push($(this).val());
});
//countries.join(", ")
alert("You have selected the country - " + countries.slice(-1)[0]);
});
});
</script >
Ну, тогда просто сделайте дополнительную опцию и удалите includeSelectAllOption
, Когда пользователь нажимает "выбрать все", отмените выбор всех остальных параметров и продолжайте "выбирать все".
var handler = function(){
let val = $(this).val();
if(val === null) return;
val.forEach(function(value){
if(value == "all"){
$("#change_city option:selected").prop("selected", false);
$('#change_city option[value="all"]').prop('selected', true);
}
});
}
$("#change_city").on("change", handler);
#change_city {
height: 150px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" id="change_city" multiple="multiple">
<option value="1">City 1</option>";
<option value="2">City 2</option>";
<option value="3">City 3</option>";
<option value="4">City 4</option>";
<option value="all">Select All</option>";
</select>