Help us understand the problem. What is going on with this article?

intra-martのFormaDesignerでのセレクトボックスの表示文字列を取得する

はじめに

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];
のように書くこともでき、コードを汎用化することも可能です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした