Выполнение формы с деформированием и изменение статуса страницы в зависимости от выбора, сделанного пользователем. Пример. если он выберет вариант 1 из selectwidget, покажите ему один набор полей, если случай другого выбора - другой. Как это сделать?Динамические формы с деформированием
ответ
Вы можете использовать jquery и выбрать атрибут «name». Кроме того, вы можете использовать функцию jQuery «parent()», чтобы получить контейнер ввода, который вам интересен при отображении/скрытии.
Например, в вашей схеме делать что-то вроде:
# This is the "<select>"
choices = (('yes','Yes'),
('no', 'No'))
bar = colander.SchemaNode(colander.String(),
widget=deform.widget.SelectWidget(values=choices))
# This is the input that should appear only when the "yes" value is selected
foo = colander.SchemaNode(colander.String())
Затем, в шаблоне, добавьте somethig как:
<script>
$(document).ready(function() {
// ensure that the "foo" input starts hidden
var target = $("input[name=foo]").parent().parent();
target.hide();
$("select[name=bar]").on('change', function(){
var valueSelected = this.value;
if (valueSelected == "yes") {
target.show();
} else {
target.hide();
}
});
});
</script>
Очень приятное решение. Легкий и умный. – karantan
Также для более полного решения вы можете использовать что-то вроде https://github.com/miohtama/jquery-interdependencies –
что вы пробовали? – utkbansal
Пожалуйста, добавьте код на вопрос, мы получим повесить то, что происходит –