Я хочу иметь возможность проверить несколько пользователей и выбрать только один вариант для каждого пользователя И отправить всех выбранных пользователей в список для каждого варианта в шаблоне/html

Так, я не смог придумать простое название, извините за это.

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

Вот как это выглядит:
Screenshot of current appearance

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

<label class="dropdown-item text-wrap labelname" style="overflow-wrap: break-word; padding-left: 5px; padding-right: 0px;">
    <input class="green form-check-input me-1  checkboxes-recipients recipientsmessage  " id="green2"  onclick="syncUnCheck(green2, gray2)"  type="checkbox" value="invite" name="recipients[]">
    <input class="gray form-check-input me-1  checkboxes-recipients recipientsmessage" id="gray2" onclick="syncUnCheck(gray2, green2)" type="checkbox" value="invite" name="recipientsCC[]">
    invité
</label>

Проблема этой функции в том, что она не обрабатывает неограниченное количество флажков, а только 2 в настоящее время, и 3 в будущем Если я не нахожу других вариантов... возможно, вместо этого аргумент массива?
вот код функции:

<script>
    function syncUnCheck(id, idAlt1) {
      $(id).on("change", function() {
        var ischecked= this.checked
        if (ischecked) {
            $(idAlt1).prop("checked", !this.checked).trigger('change');
        }
        {% if '/messagerie/send' in request.path %}
        showCheckedMessage();
        {% endif %}
      });
    };
</script>

Вопросы следующие:
Есть ли простой html способ сделать то, что я хочу?
Django трюк, позволяющий мне легко использовать радио с разными именами для каждого пользователя?
Или я должен просто изменить js-функцию для обработки неопределенного количества флажков вместо этого?

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