Как захватить ввод HTML-формы с колбой, используя jquery выбран множественный выбор - PullRequest
0 голосов
/ 28 мая 2018

У меня есть HTML-форма с jquery-chosen множественным выбором стран.Я хочу отправить этот вход на Flask через запрос POST.Проблема в том, что Flask не фиксирует выборки.

Когда я не использую выбранный js, он работает:

<div class = "webform">
            <form method="POST" action = "/monthly_active" name = "countries">
            <p>Select countries</p>
                <select multiple id="Country" name="Country">     
                <option>Select...</option>
                <option value="DE">DE</option>
                <option value="AT">AT</option>
                <option value="RU">RU</option>
                <option name="PL">PL</option>
                <option name="IT">IT</option>
                <option name="GB">GB</option>
                <option name="BR">BR</option>
                </select>

            <input type="submit" value="Submit">
            </form>

Но с выбранным js он не работает:

    <form method="POST" action = "/monthly_active" name = "chart_options" >
    <p>Select countries</p>
    <select name = "countries[]" data-placeholder="Countries" multiple class="chosen-select" tabindex="8">
        <option value="AT">AT</option>
        <option value="GB">GB</option>              
        <option value="RU">RU</option>
        <option selected>DE</option>
        <option disabled>Sun Bear</option>
        <option selected>ES</option>
        <option disabled>Spectacled Bear</option>
      </select>  

    <script> $(".chosen-select").chosen(); </script>

    <input type="submit" value="Submit">
    </form>

В Flask я использую request.form.getlist(), чтобы получить список ввода.Дело в том, что я очень хорошо разбираюсь в HTML и JavaScript, поэтому я застрял в том, как справиться с этой проблемой.

1 Ответ

0 голосов
/ 01 июня 2018

Решено:

Моя ошибка была в request.form.getlist('chart_options'): я передал там имя формы, тогда как мне пришлось передать имя <select> Это сработало:

target_countries = request.form.getlist('countries[]')

...