Нажмите значения для множественного выбора

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

HTML

<select id = "select-execution-group-update" class = "form-control" onchange = "getParamListForCustomGroupUpdate()">

// JS файл

    function getParamListForCustomGroupUpdate() {

var selected_execution_group = document.getElementById("select-execution-group-update").value;

$.ajax({
    method: "GET",
    dataType: "text",
    url: "getObjectList",
    data: {
        execution_group_name: selected_execution_group
    },
    success: function (result) {
        result = result.replace(/\/g, "");
        document.getElementById("object_custom_name").value = result;
    }

}

);

}

Что в результате ajax? Это массив? Можете показать результат?

mridula 01.01.2019 11:33

да. , Устройство-1, Устройство -2, Устройство-3

Raja1983 01.01.2019 11:46

@ Raja1983, не могли бы вы прислать мне образец ответа, чтобы я мог дать вам точный ответ.

wasipeer 01.01.2019 12:28

да. результат: Device.10001.Enable \, Device.WiFi.AccessPoint.101 \, Device.WiFi.AccessPoint.101.Security \

Raja1983 01.01.2019 12:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
267
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

 function getParamListForCustomGroupUpdate() {

var selected_execution_group = document.getElementById("select-execution-group-update").value;

$.ajax({
    method: "GET",
    dataType: "text",
    url: "getObjectList",
    data: {
        execution_group_name: selected_execution_group
    },
    success: function (result) {
        // result in array
        result = result.replace(/\/g, "");
        referenceNode = document.getElementById("object_custom_name");
        //document.getElementById("object_custom_name").value = result;
        var myDiv = document.getElementById("myDiv");

        //Create and append select list
        var selectList = document.createElement("select");
        selectList.id = "mySelect";
        myDiv.appendChild(selectList);

        //Create and append the options
        for (var i = 0; i < result.length; i++) {
           var option = document.createElement("option");
           option.value = result[i];
           option.text = result[i];
           selectList.appendChild(option);
        }
        referenceNode.parentNode.insertBefore(myDiv, referenceNode.nextSibling);
    }

}

получение массива не определено

Raja1983 01.01.2019 12:30
Ответ принят как подходящий

Вам просто нужно заменить текстовую область на множественный выбор и добавить значение в этот множественный выбор.

<select id = "select-execution-group-update" class = "form-control" onchange = "getParamListForCustomGroupUpdate()">
<select id='multi-select' ...>

//JS file

    function getParamListForCustomGroupUpdate() {

var selected_execution_group = document.getElementById("select-execution-group-update").value;

$.ajax({
    method: "GET",
    dataType: "text",
    url: "getObjectList",
    data: {
        execution_group_name: selected_execution_group
    },
    success: function (result) {
        result = result.replace(/\/g, "").split(',');
        var arrayLength = result.length;
        for (var i = 0; i < arrayLength; i++) {
            var option = document.createElement("option");
            option.text = result[i];
            option.value = result[i];
            var select = document.getElementById("multi-select");
            select.appendChild(option);    
        }
    }
}

);

Поставляется как отдельная опция., Устройство1, устройство 2, устройство 3.

Raja1983 01.01.2019 12:14

@ Raja1983 вы можете попробовать прямо сейчас.

wasipeer 01.01.2019 12:30

@ Raja1983 и примите ответ, если он работает сейчас.

wasipeer 01.01.2019 12:31

Спасибо.Получена ошибка Uncaught TypeError: невозможно прочитать свойство appendChild со значением NULL.

Raja1983 01.01.2019 12:35

Я обнаружил проблему. Она появляется, но идет отдельными буквами.

Raja1983 01.01.2019 12:37

@ Raja1983, не могли бы вы поделиться значением переменной результата, распечатав его на консоли.

wasipeer 01.01.2019 12:39

<option value = "D"> D </option>, <option value = "e"> e </option>

Raja1983 01.01.2019 12:48

Я не мог скопировать результаты. Инструменты разработчика, которые я видел выше.

Raja1983 01.01.2019 12:50

что возвращает данные действия getObjectList? @ Raja1983

wasipeer 01.01.2019 12:52

результат: Device.10001.Enable \, Device.WiFi.AccessPoint.101 \, Device.WiFi.AccessPoint.101.Security \

Raja1983 01.01.2019 12:53

@ Raja1983 добавьте это в конец строки gsub .split (',')

wasipeer 01.01.2019 12:57

Как очистить значения в select.Каждый раз я буду получать новые значения.Если я выберу Test, он будет выдавать другое значение, если я выберу тестирование, оно будет выдвигать другое значение.Каждый раз выбор мне нужно очистить множественный выбор

Raja1983 01.01.2019 13:08

document.querySelectorAll ('# multi-select option'). forEach (option => option.remove ()) добавить эту строку перед var select = .... @ Raja1983

wasipeer 01.01.2019 13:13

Я удалил.

Raja1983 01.01.2019 13:14

Другие вопросы по теме