オブジェクトを条件によって非表示とする¶
フォーム上で配置したオブジェクトを非表示とするときは JavaScript を使用します。
コンボボックスやラジオボタンの選択状態を条件として、入力テキストの表示/非表示を動的に変更することができます。
本項では、JavaScript を使用したオブジェクトの表示状態を変更する方法と注意事項を説明します。
注意
本項で説明する内容は、申請や承認時のプレビュー、「申請済み」や「完了」などの各一覧から確認できる文書(PDF)には反映されません。
詳細は 「注意事項」 を参照してください。
注意
本設定は、V5.0.0以降のフォームで利用可能です。
Liteフォームおよび旧バージョン形式のフォーム(JSP/PDF)では利用できません。
表示状態を変更する方法¶
オブジェクトの表示状態は、以下のプロパティ[表示]タブの項目[プロパティ]-[表示]で指定できますが、 ここで指定した内容はフォームを表示したときの初期状態として反映するため、常に表示する状態となります。
オブジェクトの表示状態を動的に変更するときは以下の JavaScript で設定を変更します。 この JavaScript を任意のタイミングで実行することでオブジェクトの表示を制御できます。
// 入力テキスト「ITEXT000」の表示状態を「非表示」とする document.getElementsByName( 'ITEXT000' )[0].style.visibility = "hidden"; // 入力テキスト「ITEXT000」の表示状態を「表示」とする document.getElementsByName( 'ITEXT000' )[0].style.visibility = "visible";
実用例¶
フォームの設定
オブジェクトの配置
JavaScriptの登録
入力テキストの表示を制御するJavaScriptは下表のタイミングで実行するため、それぞれの設定箇所へ登録します。
実行するタイミング 目的 コンボボックスの選択項目を変更したとき 変更後の選択項目に対する設定を入力テキストへ反映するため フォームを表示したとき フォームを表示した直後の選択項目に対する設定を入力テキストへ反映するため
コンボボックスのプロパティ[HTML]タブの[onChange]イベントへ以下の JavaScript を登録します。
登録する JavaScript の処理内容は、コンボボックスの選択項目が「その他」を選択しているか確認して入力テキストの表示を変更します。◇登録する JavaScript
//コンボボックスの参照 let combo = document.getElementsByName( 'CMB' )[0]; //選択している項目の番号を取得 let sel = combo.selectedIndex; //番号を指定した項目名の取得 let txt = combo.options[sel].text; //選択した項目が「その他」であるときの制御 if( txt == 'その他' ){ //選択項目が「その他」であるときの処理 document.getElementsByName( 'ITEXT000' )[0].style.visibility = "visible"; }else{ //選択項目が「その他」以外であるときの処理 document.getElementsByName( 'ITEXT000' )[0].style.visibility = "hidden"; }◇[onChange]イベントへの JavaScript 登録
設定箇所は 「入力フォーム表示時のJavaScript」 へ記載の[ページ表示時の JavaScript 登録]から起動するダイアログです。 [ページ表示時のJavaScriptの編集]ダイアログで設定した JavaScript は、フォームを表示したとき、フォームにページを追加したときなどのタイミングで実行できます。
「コンボボックスの選択項目を変更したときに実行するJavaScript」 を [ページ表示時の JavaScript 登録]から起動するダイアログへ登録します。
ヒント
- このタイミングで JavaScript を実行することで、フォームを表示した直後に入力テキストの設定を変更できます。
- JavaScript を外部ファイルとして用意することも可能です。
外部ファイルとして用意するときは 「外部ファイルとしてJavaScriptを登録する」 を確認してください。動作の確認
注意事項¶
オブジェクトの表示を制御するときの注意点を説明します。
JavaScriptで設定した表示制御はPDFには反映されない
JavaScript で設定した表示制御はフォーム上でのみ有効となります。
申請や承認を確定したときの文書(PDF)やPDFプレビューの結果に対しては、JavaScript で設定した表示状態を反映できません。以下のように入力テキストを JavaScript で非表示として PDF プレビューしたとき、PDFでは入力テキストが表示されます。
PDFへ反映できる表示制御はオブジェクトのプロパティで2通りの指定があります。 [表示]タブの項目[出力時]-[設定]から起動する[出力時表示設定]ダイアログで指定しますが、指定する内容によって反映する情報が異なります。
固定オブジェクトは制御できない
固定テキストや直線オブジェクトなどの固定オブジェクトは制御できないため、これらのオブジェクトはフォーム上に配置した状態で常に表示します。