Джанго хрустящая форма, скрыть/показать поля в шаблоне

я использую Crispy-Form и Bootstrap в Django. Это работает очень хорошо. Теперь я хотел бы, чтобы поле показывалось только тогда, когда другое поле имеет ввод. В основном у меня есть multpile select list, называемый видимым, и text field, B, скрытый. как только пользователь сфокусирует/выберет одно или несколько значений в A, B должно стать видимым. И если ни один из них не выбран, он должен стать невидимым.

Есть ли у cripsy form такая функция или возможность написать JS? Или мне нужно написать JS на странице html, где отображается форма?

Чао


person EsseTi    schedule 24.11.2012    source источник


Ответы (1)


Я когда-то делал что-то подобное. Я назначил класс «скрытый» для входных данных, которые вы хотите изначально скрыть. Это можно сделать, вложив поля в Div и назначив css_class. См. http://django-crispy-forms.readthedocs.org/en/d-0/layouts.html#universal-layout-objects

Затем используйте javascript, чтобы удалить «скрытый» класс, когда происходит определенное действие.

Если вы решили использовать jQuery, вы можете использовать следующую функцию: $("input[name='a_hidden_field']").removeClass('hidden')

person Teisman    schedule 27.11.2012
comment
хорошо, до сих пор я писал функции Jquery. Но мне было любопытно, есть ли у хрустящей формы возможность скрывать/показывать поля на основе входных значений. - person EsseTi; 28.11.2012
comment
Если я вас правильно понял, то я не думаю, что это возможно. Я считаю, что вам нужно полагаться на javascript или jQuery для скрытия и отображения полей. Что вы можете сделать, так это заставить javascript find принять к сведению входное значение и соответственно отобразить поля. Примером использования этого может быть то, что если у вас есть переключатели, вы можете отображать определенные поля в зависимости от того, какой переключатель выбран. То же самое касается всех других видов ввода. - person Teisman; 01.12.2012