#はじめに
intra-martの開発に関するメモとして記載しています。
本ページに記載している実現方法は、イントラマート社公式のものではありません。
#やりたいこと
FormaDesignerで配置したセレクトボックスにて、選択された値ではなく表示文字列を取得したい。
#取得方法
FormaDesignerで配置されるセレクトボックスはIDとNAMEが設定されますが、
IDは画面が表示されるたびに動的に生成されます。
そのため、セレクトボックスのオブジェクトを取得するためにはNAMEを利用します。
NAMEにはセレクトボックスのフィールド識別IDが使用されます。
var _select = document.getElementsByName("selectbox1")[0];
オブジェクトがとれれば、あとは選択値からテキストを取得するだけです。
var _text = _select.options[_select.selectedIndex].text;
これで、セレクトボックスの選択文字列を取得することができます。
#セレクトボックスを変更した際に文字列取得を行う場合
アクション設定にて、セレクトボックスの入力時にカスタムスクリプトを実施する場合、
自身のフィールド識別IDは
this.inputId
にて取得することも可能です。
この場合、自身のオブジェクトを取得するのは
var _select = document.getElementsByName(this.inputId)[0];
のように書くこともでき、コードを汎用化することも可能です。