Как открыть необязательное поле в форме Django, если установлен флажок? - PullRequest
0 голосов
/ 25 марта 2011

Возможно ли это с Django, без использования Javascript?

Ответы [ 2 ]

4 голосов
/ 25 марта 2011

Технически возможно использование некоторых методов CSS3, хотя не будет универсальной поддержки браузера.

Ваше поле будет иметь идентификатор в зависимости от префикса формы (по умолчанию 'id', настраивается при созданииform), так что вы можете стилизовать элемент формы в css с идентификатором #id_field_name.Затем вы можете использовать некоторые CSS3 селекторы , чтобы добраться до ваших полей, что-то вроде этого:

#id_checkbox_field ~ #id_hidden_field {display: none; }
#id_checkbox_field[checked] ~ #id_hidden_field { display: block; }

Конечно, ваш селектор будет меняться в зависимости от структуры вашего документа.Тильда будет работать только в том случае, если id_checkbox_field и id_hidden_field имеют общего родителя, но теоретически вы можете настроить структуру документа так, чтобы это можно было сделать с помощью CSS3.Если вам нужны плавные анимации, это технически возможно , но это не просто и не очень хорошо поддерживается.

Альтернатива, как сказал pjmorse, состоит в том, чтобы они поставили флажок, отправили форму ивернуть его с отображением нового поля.Дайте мне знать, если вам нужна помощь в выяснении этого, это целая другая банка червей, и я сомневаюсь, что это то, что вы ищете.

В большинстве случаев, когда вы хотите что-то делать динамически, выхочу использовать JavaScript.

2 голосов
/ 25 марта 2011

Вы имеете в виду раскрытие необязательного поля, когда флажок установлен?Это почти невозможно в любой среде без Javascript.Ваши простые варианты: либо использовать JS для отображения необязательного поля в зависимости от состояния флажка, либо заставить флажок фактически отправлять сообщения обратно, чтобы перезагрузить другую версию формы, показывающую необязательное поле (и для того, чтобы флажок работал так, как это требуется, потребуетсяJS).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...