Select2(select option) получение значения при выборе в скрытый input value=""
Добрый день!
Прошу помощь с Select2 v4 ссылка на него https://select2.github.io/options.html С помощью него стилизовал <select>. <input type="hidden" name="tagger-1" id="event" value=""> <select id="#event-list" multiple="multiple"> <option value="1">событи1</option> <option value="2">событи2</option> <option value="3">событи3</option> <option value="4">событи4</option> <option value="5">событи5</option> </select> Подключил Select2. Как сделать так чтобы при выборе в select2, выбранное значение подставлялось в value="" скрытого input через ",", а при удаление удалялось из input. Из того что прочитал в документации надо использовать два события: select2:select и select2:unselect и заворачивать их в (How can I attach listeners for these events?):
$('select').on('select2:select', function (evt) {
// Do something
});
Что получилось у меня. Но в таком случае вставляется только одно значение, те если сначало было выбрано value="Событие1" при выборе другого "Событие2" затирается первое и получается value="Событие2"! А требуется: value="Событие1, Событие2, Событие3" А при удалении удаляется значение вместе с value="".
<script type="text/javascript">
$(function(){
$("#event-list").select2({
placeholder: 'Выберите событие',
})
//Добавление в value=""
.on('select2:select', function (evt) {
$('#event').attr('value', this.value);
})
//Удаление из value=""
.on('select2:unselect', function (evt) {
$('#event').removeAttr('value', this.value);
});
});
</script>
|
ramon149,
неправильные у вас id и вместо attr нужен val
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
#event-list{
width: 200px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
</head>
<body>
<input name="tagger-1" id="event" value="">
<select id="event-list" multiple="multiple">
<option value="1">событи1</option>
<option value="2">событи2</option>
<option value="3">событи3</option>
<option value="4">событи4</option>
<option value="5">событи5</option>
</select>
<script type="text/javascript">
$(function(){
$("#event-list").select2({
placeholder: 'Выберите событие'
})
//Добавление и удаление в value=""
.on('select2:select select2:unselect', function (evt) {
$('#event').val($(this).val());
})
});
</script>
</body>
</html>
|
Для множественного выбора используй multiple
<select id="event-list" multiple> ... </select> Для каких целей тебе скрытое поле? Чтобы получить выбранные значение обращайся на прямую
Alert($("#event-list").val())
|
Цитата:
|
Спасибо, за помощь :) Вечером попробую
Судя все должно работать! Еще раз спасибо :) |
Цитата:
вот и приходиться использовать скрытый input |
Всем, спасибо! все работает как надо :)
|
| Часовой пояс GMT +3, время: 08:32. |