Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 112

Динамическое создание полей формы

04.02.2022, 19:47. Показов 2382. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени. Пытаюсь сделать динамическое добавление поля в форму через JS. Не работает. Подскажите пожалуйста куда копать.

Код формы с полем FieldList:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Participant(Form):
    fio = StringField('ФИО')
    position = StringField('Место')
 
 
class AddChildren(FlaskForm):
    teacher = StringField('Преподаватель')
    level = SelectField('Уровень мероприятия', choices=['Международный', 'Федеральный', 'Региональный', 'Муниципальный',
                                                        'Институциональный'])
    nomination = StringField('Номинация')
    distant = SelectField('Дистанционный', choices=['Да', 'Нет'])
    union = StringField('Объединение')
    collective = SelectField('Коллектив', choices=['Да', 'Нет'])
    place = StringField('Место проведение')
    date = StringField('Дата проведения (Пример: 20.12.2022)')
    send = SubmitField('Отправить')
    participants = FieldList(FormField(Participant), min_entries=1, max_entries=15)
JS для создания и добавления поля ввода в FieldList:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function () {
            var maxField = 15; //Input fields increment limitation
            var addButton = $('.add_button'); //Add button selector
            var wrapper = $('.wrapper'); //Input field wrapper
            var x = 0; //Initial field counter is 1
            //Once add button is clicked
            $(addButton).click(function () {
                //Check maximum number of input fields
                if (x < maxField) {
                    var fioInput = $("<input>")//New input field html
                        .attr("class", "uk-input")
                        .attr("type", "text")
                        .attr("placeholder", "ФИО участника")
                        .attr("id", "fio-" + x)
                        .attr("name", "fio-" + x);
                    x++;//Increment field counter
                    $fioInput.appendTo(wrapper);
                }
            });
        });
HTML для рендера:
HTML5
1
2
3
4
5
6
7
<div class="uk-grid uk-margin-large-bottom wrapper">
                {% for subform in form.participants %}
                {{ subform.fio }}
                {{ subform.position }}
                {% endfor %}
            </div>
<a class="add_button uk-button uk-button-default uk-width-1-1">Добавить участника</a>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2022, 19:47
Ответы с готовыми решениями:

Динамическое дублирование полей формы
хотел бы продолжить вот эту тему: https://www.cyberforum.ru/php-beginners/thread610744-page2.html Исходный язык java. Пытаюсь...

Динамическое создание полей
Возможно ли в существующую таблицу добавлять новые поля используя VB script к примеру ? Если не сложно киньте примерчик, или ссылку где...

Динамическое создание полей
Народ, на помощь. С html и js имел очень мало дел, но очень нужно создать страницу, на которое по нажатию кнопки можно будет создать новые...

3
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
04.02.2022, 20:06
Ну тут не по теме. Это надо в ветку с JS. Я уж сто лет на нем ничего не делал, но вроде бы здесь $ лишний:
JavaScript
1
$fioInput.appendTo(wrapper);
0
1 / 1 / 1
Регистрация: 15.10.2015
Сообщений: 112
04.02.2022, 20:08  [ТС]
Тут проблема в том, что визуально поле добавляется, но при отправке формы ничего не приходит. Проблема в том чтобы связать JS и WTForms
0
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
04.02.2022, 21:41
Тогда нужно еще код маршрута увидеть. Я так далеко вглубь Flask не залезал, но по аналогии с другими моделями скорее всего поля, отсутствующие в модели, просто не будут существовать. Т.е. поля, которых нет в форме Form или FlaskForm, надо не через форму модели доставать, а через request.form.get. Поэтому надо видеть код маршрута или blueprint, если через него сделано.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.02.2022, 21:41
Помогаю со студенческими работами здесь

Динамическое создание полей
Доброго времени суток! Пишу проект, нужно динамически создавать поле, в него что-то записать и что бы вся информация(координаты поля,...

Динамическое создание полей
Есть таблица &quot;UserGroups&quot; для создания групп пользователей с определёнными правами: добавление, удаление, изменение: Но преподавателя...

Динамическое клонирование полей формы и их дальнейшее использование
Здравствуйте. Есть необходимость динамического склонирования элементов формы. Есть форма. есть три текстовых инпута c id (first, second,...

Динамическое создание текстовых полей
Народ, подскажите пожалуйста, как мне создать 10 текстовых полей не вручную, а кодом. И как в дальнейшем к ним обращаться ??? Вот то, что...

Динамическое создание полей объектов
Доброго времени суток. Возникла следующая проблема: Нужно создать объект которому динамически назначаются поля и их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru