Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
32 / 25 / 19
Регистрация: 21.07.2015
Сообщений: 300
1

Bootstrap Multiselect - очистка предыдущего выбора

25.05.2016, 13:29. Показов 1076. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, коллеги.

Прошу помочь с проблемой - как правильно очищать предыдущий выбор в выпадающем списке Bootstrap (вып.список реализован через asp:ListBox)?

HTML5
1
<asp:ListBox ID="UpdateCrash_cause_ddl" CssClass="showtooltip dropdownCtrl" runat="server" SelectionMode="Multiple"></asp:ListBox>
Общая картина такая. На странице нагенеренная таблица, при клике на строке таблицы выходит модаль Bootstrap'а. Модаль содержит выпадающий список, с которым и нужно работать. Как прочитать значения из ячейки таблицы в выпадающий список (для выбора только нужных опшинов) я понял. Но если я закрываю модаль и кликаю по другой строке таблицы - в выпадающем списке сохраняется предыдущий выбор, что некорректно.

Код примерно такой:
Кликните здесь для просмотра всего текста
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//Клик по строке таблицы
$(".ElementLineToRead").click(function () {
 
    //Проверим активна ли кнопка завершения.
    var valueOfButtonActivity = $(this).parents("tr").find(".CloseThisCrash").attr("disabled");
    if (valueOfButtonActivity == "disabled") {
        return false;
    }
 
    //Наименование в модельный хеадер
    $(".elementName_toUpdate").text($(this).parents("tr").find(".EquipLink").text());
    //прочие манипуляции со значениями.....
    
    //Здесь я считываю значение из ячейки кликнутой строки (например, "имя1,имя2")
    var cause_forUpdate = $(this).parents("tr").find(".Cause").text();
 
    //Мультиселект подсасывает нужные значения
    valArr = cause_forUpdate.split(",");
    for (i = 0; i < valArr.length; i++) {
        $("#UpdateCrash_cause_ddl").find("input [value='" + valArr[i] + "']").addClass("active");
        $("#UpdateCrash_cause_ddl option[value='" + valArr[i] + "']").attr("selected", 1);
        $("#UpdateCrash_cause_ddl").multiselect("refresh");
    }
 
    //Читаю прочие ячейки для подстановки значений......
    $(".modalDialog_Edit").modal("show");
});


При первом клике на строке значение показывается правильно, например в вып.списке выделено "Имя1,Имя2". Потом я кликаю по другой строке, где ячейка содержит "Имя3" - а в вып.списке вижу выделенным "Имя3,Имя1,Имя2"(!).

Как только не мудрил, не могу исправить =(( Пример под катом (этот вариант при первом клике возвращает правильное значение, при последующих отображает "Не выбрано")
Кликните здесь для просмотра всего текста
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    valArr = cause_forUpdate.split(",");
    var toDeselect = [];
    $("option", "#UpdateCrash_cause_ddl").each(function () {
 
        for (i = 0; i < valArr.length; i++) {
            var this_option = $(this).val().toString();
            var toUpdate = valArr[i].toString();
 
            if (this_option == toUpdate) {
                $("#UpdateCrash_cause_ddl").find("input [value='" + toUpdate + "']").addClass("active");
                $("#UpdateCrash_cause_ddl option[value='" + toUpdate + "']").attr("selected", true);
                $("#UpdateCrash_cause_ddl").multiselect("refresh");
            }
            else {
                toDeselect.push(this_option);
            }
        }
    });
 
    $("#UpdateCrash_cause_ddl").multiselect('deselect', toDeselect);




Добавлено через 2 часа 25 минут
Методом тыка решение нашлось:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
valArr = cause_forUpdate.split(",");
 
$("#UpdateCrash_cause_ddl").multiselect('deselectAll', false);
$("#UpdateCrash_cause_ddl").parents("p").find("input").each(function () {
    for (i = 0; i < valArr.length; i++) {
        var this_option = $(this).val().toString();
        var toUpdate = valArr[i].toString();
 
        if (this_option == toUpdate) {
            $("#UpdateCrash_cause_ddl").find("input [value='" + toUpdate + "']").addClass("active");
            //.prop вместо .attr (!)
            $("#UpdateCrash_cause_ddl option[value='" + toUpdate + "']").prop("selected", true);
            $("#UpdateCrash_cause_ddl option[value='" + toUpdate + "']").selected=true;
            $("#UpdateCrash_cause_ddl").multiselect("refresh");
        }
    }
});
Топег клоузд
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2016, 13:29
Ответы с готовыми решениями:

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

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

Выпадающий список на основе предыдущего выбора из выпадающего списка
Помогите пожалуйста. Есть таблица с отделениями (Список реанимаций), есть таблица с фамилиями...

Реализация Выбора в форме в зависимости от предыдущего шага и от условий до отправки формы Обработчику.Как это возможно?:-)
Добрый день! При работе с формами столкнулась с двумя задачами &quot;на условия&quot;, как с ними...

0
25.05.2016, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2016, 13:29
Помогаю со студенческими работами здесь

Для чего в Bootstrap файлы bootstrap.css.map и bootstrap-theme.css.map?
В дистрибутиве Bootstrap были замечены файлы bootstrap.css.map и bootstrap-theme.css.map. А начале...

Очистка консоли, очистка строки, установка курсора
Здравствуйте! Подскажите как можно после очистки консоли поставить курсор в самый вверх, чтоб то...

multiselect
у кого-нибудь есть наработки, примеры, ссылки на multiselect в списке?

MultiSelect в DialogBox
Privet, ne podskajiteli vi mne kak sdelat vibor srazu neskolkix faylov iz dilaogbox-a vizivayu...

RadioGroup Multiselect
Приветствую! Пишу программу-тест. Необходимо реализовать множественный выбор в RadioGroup. ...

MultiSelect в MonthCalendar
Нужно на строке состояния отобразить количество выбранных дней в календаре.


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru