1

プレーン 4.3.3

PloneFormGen 1.7.16

選択フィールドからのユーザーの選択に基づいて、一連のフィールドを表示または非表示にしたいと考えています。Fieldset Begin 要素と Fieldset End 要素はこれに答えないため、各フィールドのオーバーライドを有効にする式が残っています。フォーム フィールドの現在の値をテストするための TALES の呪文は何ですか? PloneFormGen は、ユーザーが選択を変更するとフィールドが表示/非表示になるように動的にテストしますか?

ありがとうございました、

チャック

4

1 に答える 1

0

これは JavaScript で実行できます: 1および2

最初に JavaScript ファイルをフォーム フォルダーに作成します。

  1. ZMI を使用してフォーム フォルダーを参照するか、フォーム フォルダーの URL に「/manage_main」を追加します。
  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. [オーバーライド] タブで、[ヘッダー インジェクション] フィールドに「here/your-script-ID」と入力します。

3 番目(オプション) は、動的に非表示のフィールドが表示されている場合にのみ必須にします。

  1. フィールド編集に移動し、[必須] チェック ボックスがオンになっている場合はオフにします。
  2. [オーバーライド] タブで、カスタム フィールド バリデーターを追加します。

    python: test(request.form['selection-fieldname'] != 'I like this' or value, False, 'I like this is selected.')

于 2015-07-06T07:52:38.513 に答える