JQuery: Варианты выбора не попадают в короткий список при выборе радиокнопки

I want to provide the functionality to shortlist (reduce) the options inside select on the basis of the value of the radio button that is selected

В настоящее время я делаю это с помощью PlugIn в JQuery, который выглядит следующим образом -

jQuery.fn.filterOn = function (radio, values) {
            return this.each(function () {
                var select = this;
                var options = [];
                $(select).find('option').each(function () {
                    options.push({ value: $(this).val(), text: $(this).text() });
                });
                $(select).data('options', options);
                $(radio).click(function () {
                    var options = $(select).empty().data('options');
                    var haystack = values[$(this).attr('id')];
                    $.each(options, function (i) {
                        var option = options[i];
                        if ($.inArray(option.value, haystack) !== -1) {
                            $(select).append(
                                $('<option>').text(option.text).val(option.value)
                            );
                        }
                    });
                });
            });
        };

Я использовал этот плагин отсюда - https://stackoverflow.com/a/878331/11827709

Вы просто передаете словарь этому плагину, и он составляет для вас короткий список вариантов выбора

Если я передаю в эту функцию словарь, закодированный следующим образом -

$(function () {
            $('#config').filterOn('input:radio[name=core]', { 
                'A': ['A1', 'A2', 'A3'], 
                'B': ['B1', 'B2', 'B3'], 
                'C': ['C1', 'C2', 'C3', 'C4', 'C5', 'C6'] 
            });
        });

Шорт-лист работает нормально

Как, если я выбираю 'A' в радиокнопке, я могу видеть только A1, A2 и A3 в меню выбора

Но если я заменю ее переменной, которую я передаю из представления Django и которая является словарем, то, похоже, она просто не работает

.

Здесь я передаю переменную в HTML-файл -

context={'options_dict':options_dict}
return render(request,"submitnewCore.html",context)

Я распечатал его на терминале, и он содержит следующее -

{ 
'A': ['A1', 'A2', 'A3'], 
'B': ['B1', 'B2', 'B3'], 
'C': ['C1', 'C2', 'C3', 'C4', 'C5', 'C6'] 
}

Это обычный словарь Python

Сейчас, когда я передаю это в HTML-файл Django, он добавляет некоторые символы Unicode в начало и в начало каждой строки, что-то вроде &#x27

.

Но я могу решить эту проблему, обратившись к переменной следующим образом "{{options_dict|safe}}"

.

Таким образом, удаление этих символов Юникода

Сейчас я вывел эту переменную на консоль JavaScript, и она также содержит тот же словарь

Но когда я пишу этот код -

$(function () {
     $('#config').filterOn('input:radio[name=core]',"{{options_dict|safe}}");
});

В меню выбора не отображаются варианты, основанные на выборе радиокнопки Меню выбора становится пустым, когда я выбираю любую радиокнопку

Есть идеи, почему это происходит?

Вернуться на верх