Show Menu
トピック×

HTML5 フォームに関するよくある質問(FAQ)

レイアウト、スクリプティングサポート、および HTML5 フォームのスコープについて、いくつかのよくある質問(FAQ)があります。

レイアウト

  1. バーコードと署名フィールドがフォームに表示されないのはなぜですか。
    回答:バーコードフィールドと署名フィールドは HTML やモバイルのシナリオに関係していません。これらのフィールドは非インタラクティブ領域として表示されます。 ただし、AEM Forms Designer は署名フィールドの代わりに使用できる新しい署名手書きフィールドを提供します。また、バーコードの カスタムウィジェット を追加し、それを統合することもできます。
  2. XFA テキストフィールドではリッチテキストのサポートはありますか?
    回答:AEM Forms Designer でリッチコンテンツの使用を可能にする XFA フィールドはサポートされていないため、リッチテキストは標準テキストとして表示されます。ユーザーインターフェイスでテキストのスタイル設定はサポートされていません。また、comb の桁の値によって許可される文字数の制限はまだありますが、comb プロパティのある XFA フィールドも標準フィールドとして表示されます。
  3. 繰り返し可能なサブフォームの使用に関して制限はありますか?
    回答:繰り返し可能なサブフォームには、初期カウントとして「1」以上の値を設定する必要があります。繰り返し可能なサブフォームの初期カウントとして「0」を設定することはできません。繰り返し可能なサブフォームを使用する場合、フォームのロード時に繰り返し可能なサブフォームを非表示にすることもできます。その場合は、以下の手順を実行します。
    1. 繰り返し可能なサブフォームの初期カウントとして「1」を設定します。
    2. フォームの初期化イベントを使用して、サブフォームのプライマリインスタンスを非表示にします。例えば、フォームを初期化する際にサブフォームのプライマリインスタンスを非表示にするには、以下のようなコードを記述します。また、このコードでアプリケーションタイプを確認し、スクリプトをクライアント側でのみ実行することもできます。
      if ((xfa.host.appType == "HTML 5" || xfa.host.appType == "Exchange-Pro" || xfa.host.appType == "Reader")&&(_RepeatSubform.count == 1)&&(form1.Page1.Subform1.RepeatSubform.Key.rawValue == null)) {
      RepeatSubform.presence = "hidden";
      }  
      
      
    3. サブフォームのインスタンスを追加するためのスクリプトを編集用に開き、インスタンスをサブフォームスクリプトに追加するための、以下のようなコードを記述します。
      このコードにより、サブフォームの非表示インスタンスが存在するかどうかが確認されます。サブフォームの非表示インスタンスが検出された場合は、そのインスタンスが削除され、サブフォームの新しいインスタンスが挿入されます。サブフォームの非表示インスタンスが検出されなかった場合は、単純にサブフォームの新しいインスタンスが挿入されます。
      if (RepeatSubform.presence == "hidden")
      { 
      RepeatSubform.instanceManager.insertInstance(0);
      RepeatSubform.instanceManager.removeInstance(1);
      }
      else
      {
      RepeatSubform.instanceManager.addInstance(1);
      }
      
      
    4. サブフォームのインスタンスを削除するためのスクリプトを編集用に開き、次のよ追加うなコードを使用して、サブフォームスクリプトのインスタンスを削除します。
      このコードにより、サブフォームのカウントが確認されます。サブフォームのカウントが「1」になると、サブフォームが非表示になります。その際、サブフォームが削除されることはありません。
      if (RepeatSubform.instanceManager.count == 1) {
      RepeatSubform.presence = "hidden";
      } else {
      RepeatSubform.instanceManager.removeInstance(RepeatSubform.instanceManager.count - 1);
      }
      
      
    5. フォームの presubmit イベントを編集用に開きます。このイベントに、編集前にスクリプトの非表示インスタンスを削除するための以下のスクリプトを追加します。これにより、非表示サブフォームの送信時に、そのサブフォームのデータが送信されなくなります。
      if(RepeatSubform.instanceManager.count == 1 && RepeatSubform.presence == "hidden") {
      RepeatSubform.instanceManager.removeInstance(0);
      }
      
      
  4. 非表示のサブフォームの使用に関して制限事項はありますか?
    回答:複数のページにまたがる複雑な階層の非表示サブフォームは、レイアウトに問題を引き起こします。この問題を回避するには、そのようなサブフォームを最初は表示するようにマークを付けておき、後で、特定のロジックまたはデータに基づいた初期設定スクリプトでそれを非表示にします。
  5. HTML5で一部のテキストが切り捨てられたり、正しく表示されないのはなぜですか。
    回答:Draw または Caption のテキスト要素に十分なスペースが与えられていないとき、モバイルフォームのレンダリングでテキストが切り捨てらて表示されます。この切り捨ては、AEM Forms Designerのデザイン表示でも確認できます。 この切り捨ては PDF では対処できますが、HTML5 フォームでは対処できません。この問題を回避するには、AEM Forms Designer のデザインモードで切り捨てが発生しないよう、Draw または Caption のテキスト用に十分なスペースを用意します。
  6. 不足しているコンテンツまたは重なり合っているコンテンツに関連するレイアウト問題が見られます。理由は?
    回答:同じ位置(例:長方形)に描画テキストまたは描画表示と、重なり合う別の要素がある場合、(AEM Forms Designer階層要素内の)ドキュメント順序の後に表示されると、描画テキストのコンテンツは表示されません。 PDF は透明レイヤーをサポートしていますが、HTML/ブラウザーは透明レイヤーをサポートしていません。
  7. HTML フォームで表示されるフォントの一部がフォームをデザインする間に使用されるものと違う理由は?
    回答:HTML5 フォームは、フォーム内にフォントが埋め込まれる PDF フォームと違い、フォントを埋め込みません。HTML バージョンのフォームが期待どおりに表示されるようにするには、XDP で指定したフォントがサーバー上およびクライアントのマシンで使用できることを確認してください。目的のフォントがサーバー上で使用できない場合、代替フォントが使用されます。さらに、クライアントデバイスで使用できない、フォームテンプレートのフォントを使用すると、テキストの表示にはブラウザーのデフォルトのフォントが使用されます。
  8. vAlign と hAlign 属性は HTML フォームでサポートされていますか?
    はい、vAlign と hAlign 属性はサポートされています。vAlign属性は、Internet Explorerおよび複数行フィールドではサポートされていません。
  9. HTML5 フォームはヘブライ語をサポートしていますか?
    HTML5 フォームは、Microsoft Internet Explorer 以外のすべてのブラウザーでヘブライ語の文字をサポートしています。
  10. HTML5 フォームは数値フィールドに対して何らかの制限がありますか?
    回答:はい、HTML5フォームにはいくつかの制限があります。 桁数が、picture 句で指定されたカウントよりも多い場合は、数字はローカライズされずに英語ロケールで表示されます。
  11. HTML フォームのサイズが PDF フォームのサイズより大きいのはなぜですか?
    XDP を HTML フォームにレンダリングするには、多くの中間データ構造とフォーム DOM、データ DOM、レイアウト DOM などのオブジェクトが必要になります。
    PDF フォームの場合、Adobe Acrobat には中間データ構造およびオブジェクトを作成するための組み込み XTG エンジンがあります。Acrobat はレイアウトおよびスクリプトも管理します。
    HTML5 フォームの場合、ブラウザーには未加工の XDP バイトで中間データ構造およびオブジェクトを作成するための組み込み XTG エンジンはありません。このため、HTML5 フォームの場合、中間構造はサーバーで生成され、クライアントに送信されます。クライアントでは、JavaScript ベースのスクリプトおよびレイアウトエンジンがこれらの中間構造を使用します。
    中間構造のサイズは、元の XDP および XDP にマージされたデータのサイズによって異なります。
  12. xdp でのテーブルの使用に関して制限事項はありますか?
    回答:複雑なテーブルはレンダリングで問題を引き起こします。
    • テーブル内のセクション (SubformSet) はサポートされていません。
    • 一部のテーブルのヘッダーやフッター列は繰り返しのためにマークされています。そのようなテーブルを複数ページにわたって分割すると、いくつかの問題が発生する可能性があります。
  13. アクセス可能なテーブルには制限事項がありますか?
    回答:はい。アクセシブルなテーブルには次の制限があります。
    • 階層化テーブルとテーブル内のサブフォームはサポートされません。
    • ヘッダーがサポートされているのは、テーブルの一番上の行または左の列に対してのみです。ヘッダーは中間テーブル要素に対してサポートされていません。複数行にヘッダーを適用することができます。そのような行および列がすべてテーブルの一番上の行または一番左の列に連動している場合、列ヘッダーがサポートされます。
    • テーブル内のランダムな場所の Rowspan および colspan はサポートされません。
    • 1 より大きい rowspan 値を持つ要素を含む行のインスタンスを動的に追加または削除することはできません。
  14. スクリーンリーダーのツールヒントとキャプションの読み取り順序はどうなっていますか?
    • キャプションとツールヒントがどちらもある場合は、キャプションのみが読み取られます。キャプションがない場合は、ツールヒントが読み取られます。また、Form Designer を使用した XDP での読み取りに対して優先順位を指定することができます。
    • 要素にマウスオーバーすると、ツールヒントが表示されます。ツールヒントがない場合は、音声テキストが表示されます。音声テキストがない場合は、フィールド名が表示されます。
  15. フィールドにマウスオーバーすると、ツールヒントが表示されます。どうすれば無効にできますか?
    マウスオーバーしたときにツールヒントが表示されないようにするには、Designer のアクセシビリティパネルで何も選択しないでください。
  16. Designer では、ラジオボタンとチェックボックスのカスタムの Appearance プロパティを構成できます。フォームのレンダリング時に、HTML5フォームはこのようなカスタム外観プロパティを考慮しますか。
    回答:HTML5 フォームは、ラジオボタンとチェックボックスのカスタムの Appearance プロパティを無視します。ラジオボタンとチェックボックスは基になるブラウザーの仕様にしたがって表示されます。
  17. サポート対象のブラウザーで HTML5 フォームを開くと、隣接して配置されたフィールドの境界線が正しく配列されないか、またはサブフォームが重なって表示されます。同じ HTML5 フォームを Forms Designer でプレビューすると、フィールドとレイアウトは正しく配列されており、サブフォームも適切な位置に表示されます。どのようにして修正できますか?
    サブフォームがコンテンツをフローするように設定されており、そのサブフォームに非表示の境界線要素が含まれている場合、隣接して配置されたフィールドの境界線が正しく配置されないか、サブフォームが重なって表示されます。この問題を解決するには、対応する XDP から非表示の <border> 要素を削除するか、コメントを指定します。例えば、次の <border> 要素はコメントとしてマークされます。
                <!--<border>
                   <edge presence="hidden"/>
                   <corner thickness="0.175mm" presence="hidden"/>
                </border> -->
    
    

スクリプティング

  1. HTML フォームの JavaScript 実装に関して制限事項はありますか?
    回答:
    • xfa.connectionSet スクリプトではサポートが制限されています。connectionSetの場合、Webサービスのサーバー側での呼び出しのみがサポートされます。 For detailed information, see Scripting Support .
    • クライアント側スクリプトでは $record および $data のサポートはありません。 ただし、スクリプトがformReady、layoutReadyブロックで記述されている場合、これらのイベントはサーバー側で実行されるので、スクリプトは引き続き機能します。
    • Draw Text(またはフィールドでは Caption テキスト)の変更などの Xfa Draw 要素固有のスクリプトはサポートされていません。
  2. formCalc の使用に関して制限事項はありますか?
    回答:formCalc スクリプトのサブセットのみが現在実装されています。For detailed information, see Scripting Support .
  3. 推奨される命名規則はありますか?また、避けるべき予約済みのキーワードはありますか?
    • In AEM Forms Designer, it is recommended not to begin the name of an object (such as a subform or a text field) with an underscore ( ). To use underscore at the beginning of the name, add a prefix after the underscore, * <prefix><objectname>. *
    • すべての HTML5 フォーム API は予約済みのキーワードです。カスタムの API/機能については、 HTML5 フォーム API と異なる名前を使用します。
  4. HTML5 フォームはフローティングフィールドをサポートしていますか?
    はい、HTML5 フォームはフローティングフィールドをサポートしています。フローティングフィールドを有効にするには、次のプロパティをレンダリングプロファイルに追加します。
    デフォルトでは、フィールドのフローティングは有効になっていません。Forms Designer を使用して、フィールドのフローティングプロパティを設定できます。
    1. Open CRXde lite and navigate to the /content/xfaforms/profiles/default node.
    2. Add a property mfDataDependentFloatingField of type String and set the value of the property to true .
    3. すべて保存 」をクリックします。これで、更新されたレンダリングオプションを使用して、HTMLフォームのフローティングフィールドが有効になりましたプロファイル。
      レンダリングプロファイルを更新することなく、特定のフォームでフローティングフィールドを有効にするには、mfDataDependentFloatingField=true プロパティを URL パラメーターとして渡します。
  5. HTML5 フォームでは初期化スクリプトと form ready イベントが複数回実行されますか?
    はい、初期化スクリプトと form ready イベントは複数回(少なくともサーバー側で 1 回、クライアント側で 1 回)実行されます。一部のビジネスロジック(フォームまたはフィールドデータ)に基づいてinitializeやform:readyイベントなどのスクリプトを作成し、データの状態と等価性(データが同じ場合)に基づいてを実行するようにします。

XDP のデザイン

  1. HTML5 フォームには予約済みのキーワードがありますか?
    回答:すべての HTML5 フォーム API は予約済みのキーワードです。カスタムの API/機能については、 HTML5 フォーム API と異なる名前を使用します。予約済みのキーワード以外に、アンダースコア(_)で始まるオブジェクト名を使用する場合は、アンダースコアの後に一意の接頭辞を追加することをお勧めします。 接頭辞を追加することで、HTML5 フォームの内部 API との競合を回避しやすくなります。例: _fpField1