1

克隆 4.3.3

PloneFormGen 1.7.16

我想根据用户从选择字段中的选择显示或隐藏一组字段。Fieldset Begin 和 Fieldset End 元素没有回答这个问题,所以我为每个字段留下了一个覆盖启用表达式。测试表单域当前值的 TALES 咒语是什么?PloneFormGen 是否会动态测试,以便在用户更改选择时显示/隐藏字段?

谢谢,

查克

4

1 回答 1

0

这可以通过 JavaScript 来完成:12

首先在 forms 文件夹中创建 JavaScript 文件:

  1. 通过 ZMI 浏览到 forms 文件夹,或将“/manage_main”附加到 forms 文件夹 URL。
  2. 选择一个文件作为要添加的新内容类型
  3. 定义 ID 并将内容类型设置为“text/plain”
  4. 编辑文件

基于另一个字段的选择隐藏字段的示例 js(从2修改):(注意:需要选择列表字段)

<script type="text/javascript">
    $(document).ready(function() {
       if($("#selection-fieldname").val() != "I like this") {
           $('#fieldname-to-hide').parent().hide();
       }
       $("#selection-fieldname").change(function() {
           if ($(this).val() == "I like this") {
               $('#fieldname-to-hide').parent().slideDown();
           } else {
               $('#fieldname-to-hide').parent().slideUp();
           }
    });
});
</script>

其次将 js 注入到表单的标题中:

  1. 转到表单文件夹的编辑。
  2. 在 Overrides 选项卡中,在 Header Injection 字段中键入“here/your-script-ID”。

第三(可选)使动态隐藏字段仅在可见时才需要。

  1. 如果选中,请进行字段编辑并清除必填复选框。
  2. 在 Overrides 选项卡中,添加自定义字段验证器:

    python: test(request.form['selection-fieldname'] != '我喜欢这个' or value, False, '当我喜欢这个被选中时需要。')

于 2015-07-06T07:52:38.513 回答