首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带deform的动态表单

带deform的动态表单
EN

Stack Overflow用户
提问于 2015-12-11 20:47:05
回答 1查看 424关注 0票数 1

使用deform制作表单,并希望根据用户的选择更改pageShema类。例如。如果他从selectwidget中选择了选项1,则向他显示一组字段,如果是其他选择-另一种情况。该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2016-04-29 22:15:54

您可以使用jquery和带有"name“属性的select。此外,您还可以使用jquery "parent()“函数来获取您感兴趣的显示/隐藏输入的容器。

例如,在您的模式中执行如下操作:

代码语言:javascript
复制
# 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())

然后,在您的模板中添加如下内容:

代码语言:javascript
复制
<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>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34223948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档