Тег div не имеет атрибута name, но он мне нужен для form.post - PullRequest
0 голосов
/ 05 мая 2020

Я делаю раскрывающуюся кнопку, которая содержит языки, которые у меня есть, чтобы я мог передать этот язык (выбранный) в представление, но, по-видимому, нет атрибута имени, поэтому я не знаю, что делать, может кто-нибудь пожалуйста, помогите мне.

вот что я пытаюсь сделать

<form action="" method="post" id="languageForm">{% csrf_token %}
                                            <input name="next" type="hidden" value="{{ redirect_to }}">
                                            <div class="dropdown show">
                                                  <a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                                    Language
                                                  </a>

                                                  <div class="dropdown-menu" aria-labelledby="dropdownMenuLink" name="language" id="selectLanguage" onchange="this.form.submit()">
                                                      {% get_current_language as LANGUAGE_CODE %}
                                                      {% get_available_languages as LANGUAGES %}
                                                      {% get_language_info_list for LANGUAGES as languages %}
                                                      {% for language in languages %}

                                                      <a class="dropdown-item"  value="{{ language.code }}"
                                                            {% if language.code == LANGUAGE_CODE %} selected{% endif %}>
                                                        {{ language.name_local }} ({{ language.code }})</a>


                                                      {% endfor %}
                                                  </div>
                                                </div>
                                            <!-- <input type="submit" value="Go">-->
                                        </form>

Изменить: я добавил скрытый ввод и вызвал функцию javasript, когда элемент менялся, но ничего не произошло

function changeLang(e) {
    document.getElementById("selectLanguage").value = e.target.value;
    document.getElementById("languageForm").submit();
        alert(e.target.value);
<form action="" method="post" id="languageForm">{% csrf_token %}
                                            <input name="next" type="hidden" value="{{ redirect_to }}">
                                            <div class="dropdown show">
                                                  <a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="lang_btn" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                                    Language
                                                  </a>

                                                  <div class="dropdown-menu" aria-labelledby="dropdownMenuLink" name="language" id="selectLanguage">
                                                      {% get_current_language as LANGUAGE_CODE %}
                                                      {% get_available_languages as LANGUAGES %}
                                                      {% get_language_info_list for LANGUAGES as languages %}
                                                      {% for language in languages %}

                                                       <input type="hidden"  id="selectLanguage" name="language" value="">

                                                      <a class="dropdown-item" href=""  value="{{ language.code }}" onchange="changeLang(event)"
                                                            {% if language.code == LANGUAGE_CODE %} selected{% endif %}>
                                                        {{ language.name_local }} ({{ language.code }})</a>


                                                      {% endfor %}
                                                  </div>
                                                </div>
                                            <!-- <input type="submit" value="Go">-->
                                            <!-- <input type="submit" value="Go">-->
                                        </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...