Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
1

Jquery.multi-select.js ограничить максимум кол-во выбранных элементов

07.07.2017, 12:49. Просмотров 624. Ответов 12
Метки нет (Все метки)

Добрый день! Я практически не знаком с js, поэтом прошу помощи. Есть виджет для множественного выбора в dropDownList. Мне нужно, чтобы выбрать можно было максимум 3 элемента.
Вот код виджета:
multiselect.txt

Пытался, тыкал, выводил alert`ом значения некоторых переменных, так и не нашел где тут количество можно проверить. Спасибо заранее

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2017, 12:49
Ответы с готовыми решениями:

html select\ multi select option одним кликом
Здравствуйте помогите реализовать такую штуку допустим есть html select список . Нужно сделать так...

Как выполнить Multi select?
U menja Stored Proc v 2 select tipo Select * from tableName1 Select * from tableName2 Ja...

Multi select from same table and column
SELECT `tag`, `count` FROM `tags` WHERE `tag` IN (".implode(',', $tagsArr).") Пытаюсь сделать вот...

Подсчитать кол-во выбранных записей
Доброго всем времени. Вопрос, догадываюсь, из разряда не стоящих внимание, но нужно побыстрее, а...

Ограничить кол-во запусков
Ребят, подскажите как такое сделать: организовать защиту, основанную на ограничении количества...

12
skelmen
10 / 10 / 3
Регистрация: 03.04.2015
Сообщений: 127
07.07.2017, 16:25 2
Подсчитывайте количество элементов в поле, куда они добавлялись.
Если их больше 3, то добавляйте disabled='disabled' в тег <select>

Добавлено через 15 секунд
Подсчитывайте количество элементов в поле, куда они добавлялись.
Если их больше 3, то добавляйте disabled='disabled' в тег <select>
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
07.07.2017, 16:43  [ТС] 3
skelmen, я не знаю, как. После вызова $('#pre-selected-options').multiSelect(); почему-то не работают слушатели на click() например. Тупо делаю по клику alert и он не вызывается. А если убрать этот вызов multiSelect, то работают слушатели, но тогда список становится без дизайна который мне нужен.
0
skelmen
10 / 10 / 3
Регистрация: 03.04.2015
Сообщений: 127
07.07.2017, 16:59 4
HTML5
1
2
3
<li class="selected">1</li>
<li class="selected">2</li>
<li class="selected">3</li>
Javascript
1
2
3
4
var count = $('.selected').length;
if(count > 3) {
$('класс или айди').attr('disabled', 'disabled');
}
0
07.07.2017, 16:59
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
07.07.2017, 17:01  [ТС] 5
skelmen, куда мне вставить проверку if? В какую часть кода который я выложил
0
skelmen
10 / 10 / 3
Регистрация: 03.04.2015
Сообщений: 127
07.07.2017, 17:07 6
ваш текстовый документ с js-кодом невыносимо читать и я подозреваю, что это код самого плагина jquery.multi-select.js
Вам нужно создать и подуключить другой js , в котором выполнить код
Javascript
1
2
3
4
5
6
7
8
$(function(){
$('id или класс вашего тега select').multiSelect();
 
var count = $('.selected').length;
if(count > 3) {
$('id или класс вашего тега select').attr('disabled', 'disabled');
}
});
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
07.07.2017, 17:09  [ТС] 7
функция
Javascript
1
2
3
4
5
var count = $('.selected').length;
if(count > 3) {
$('id или класс вашего тега select').attr('disabled', 'disabled');
}
});
должна выполняться по нажатию на элемент списка я так понимаю? Значит ее нужно поместить в обработчик события какой то? Я пробовал подключать в onClick но он игнорит если multiSelect уже был вызван
0
skelmen
10 / 10 / 3
Регистрация: 03.04.2015
Сообщений: 127
07.07.2017, 17:12 8
условие будет выполнятьсясамо по окончанию загрузки страницы , его не нужно помещать в какой-либо обработчик
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
07.07.2017, 17:16  [ТС] 9
skelmen, написал
Javascript
1
2
3
4
5
6
 $('#pre-selected-options').multiSelect();
             var count = $('.selected').length;
                if(count > 3) {
                $('pre-selected-options').attr('disabled', 'disabled');
                }
                });
Исчез стиль виджета, список стал обычным, и также можно выбирать больше 3.
0
skelmen
10 / 10 / 3
Регистрация: 03.04.2015
Сообщений: 127
07.07.2017, 17:19 10
Вы забыли решетку добавить (#) - 4 строка
И у вас точно класс 'selected' у выбранных элементов ? Т.к. я просто для примера этот класс сюда вставлял.

Добавлено через 15 секунд
Вы забыли решетку добавить (#) - 4 строка
И у вас точно класс 'selected' у выбранных элементов ? Т.к. я просто для примера этот класс сюда вставлял.
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
07.07.2017, 17:48  [ТС] 11
Я не знаю какой у меня класс у выбранных элементов. Вот сгенеренный код:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="form-group field-pre-selected-options">
<label class="control-label" for="pre-selected-options">Категория</label>
<input type="hidden" name="Store[categories]" value=""><select id="pre-selected-options" class="form-control" name="Store[categories][]" multiple="true" size="4" style="position: absolute; left: -9999px;">
<option value="1">Категория 1</option>
<option value="5">Категория 2</option>
<option value="7">dsfvdsf</option>
<option value="8">rtyt</option>
<option value="10" selected="">NewActiveCategory</option>
<option value="11">NewActiveCategory</option>
<option value="12">ActiveCategory2</option>
<option value="14" selected="">рестораны</option>
<option value="17">Самара</option>
<option value="21">sdfds</option>
<option value="26">ТЕСТ</option>
</select><div class="ms-container" id="ms-pre-selected-options"><div class="ms-selectable"><ul class="ms-list" tabindex="-1"><li class="ms-elem-selectable" id="49-selectable"><span>Категория 1</span></li><li class="ms-elem-selectable" id="53-selectable"><span>Категория 2</span></li><li class="ms-elem-selectable" id="55-selectable"><span>dsfvdsf</span></li><li class="ms-elem-selectable" id="56-selectable"><span>rtyt</span></li><li selected="" class="ms-elem-selectable ms-selected" id="1567-selectable" style="display: none;"><span>NewActiveCategory</span></li><li class="ms-elem-selectable" id="1568-selectable"><span>NewActiveCategory</span></li><li class="ms-elem-selectable" id="1569-selectable"><span>ActiveCategory2</span></li><li selected="" class="ms-elem-selectable ms-selected" id="1571-selectable" style="display: none;"><span>рестораны</span></li><li class="ms-elem-selectable" id="1574-selectable"><span>Самара</span></li><li class="ms-elem-selectable" id="1599-selectable"><span>sdfds</span></li><li class="ms-elem-selectable" id="1604-selectable"><span>ТЕСТ</span></li></ul></div><div class="ms-selection"><ul class="ms-list" tabindex="-1"><li class="ms-elem-selection" id="49-selection" style="display: none;"><span>Категория 1</span></li><li class="ms-elem-selection" id="53-selection" style="display: none;"><span>Категория 2</span></li><li class="ms-elem-selection" id="55-selection" style="display: none;"><span>dsfvdsf</span></li><li class="ms-elem-selection" id="56-selection" style="display: none;"><span>rtyt</span></li><li selected="" class="ms-elem-selection ms-selected" id="1567-selection" style=""><span>NewActiveCategory</span></li><li class="ms-elem-selection" id="1568-selection" style="display: none;"><span>NewActiveCategory</span></li><li class="ms-elem-selection" id="1569-selection" style="display: none;"><span>ActiveCategory2</span></li><li selected="" class="ms-elem-selection ms-selected" id="1571-selection" style=""><span>рестораны</span></li><li class="ms-elem-selection" id="1574-selection" style="display: none;"><span>Самара</span></li><li class="ms-elem-selection" id="1599-selection" style="display: none;"><span>sdfds</span></li><li class="ms-elem-selection" id="1604-selection" style="display: none;"><span>ТЕСТ</span></li></ul></div></div>
 
<div class="help-block"></div>
</div>
Добавлено через 21 минуту
skelmen, стиль исчез потому что скобка лишняя была) Щас исправил, стиль есть, но не работает ничего. Стер даже условие меньше трех, все равно не работает
0
skelmen
10 / 10 / 3
Регистрация: 03.04.2015
Сообщений: 127
07.07.2017, 18:11 12
Извините, что-то я перегрелся. Все верно вы сказали, мое условие нужно вешать на обработчик клика.
Позже вечером еще раз пересмотрю.
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 994
10.07.2017, 11:49  [ТС] 13
skelmen, ну что?
0
10.07.2017, 11:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2017, 11:49

Передача выбранных вариантов из select в input
Доброго времени суток!.. Есть код: &lt;form method=&quot;post&quot;&gt; &lt;label&gt; Home &lt;select...

Получение значений выбранных option в select
Доброго времени суток. Имеется такой select &lt;?php $res =...

Проверка выбранных <option> в <select multiple>
Всем привет, есть такой селект: &lt;select id=&quot;Materials&quot; size=&quot;6&quot; multiple&gt; &lt;option...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru