テーマを変更中で、表示が崩れているところがあります…!

【bubble】inputに値を反映させたい

.bubble
.bubble

こちらもTwitterのDMで質問いただいた件の記事になります。

よくあるのが、郵便番号を入力して「住所を自動入力」をクリックすると、入力欄のinputに値を反映させるもの。

JavaScriptが書ける人なら1行で終わりますね。

$("input").val("反映させたい文字");

bubbleの場合は、ワークフローのアクションに、inputに値を設定するというものがありません。そのため、ちょっと面倒ですが以下のようなやり方をすると実現できます。

エレメントの設定

ここでは、Inputに入力したデータを別のInputに反映させる、という内容を実現していきます。

エレメントは、入力用Inputが1つ、反映用Inputが1つ、ボタンが1つ。ここで、反映用InputをGroup内に入れてください。

Inputに値を反映1

Input A(入力用Input)についてはInitial Contentは設定しません。

Group InputとInput B(反映用Input)については、以下のように設定します。

Inputに反映2 Group Inputの設定

Group InputのType of ContentをtextData sourceをCustom Stateを作って、その値にします。

Input B(反映用Input)は、Initial contentを Parent Group`s text にします。Group InputのData sourceを引き継ぐことになります。

Inputに反映3 反映用Inputのinitial content

ワークフローを設定

bubbleに慣れている人は、もう想像ついた人はいるかもしれません。そんな人は以下を見なくても大丈夫です😅

ボタンクリック時のアクションを設定していきます。

最初に、Custom StateにInput A`s valueを設定してやります。

Inputに反映4 Custom stateに値を設定

その後、Reset Groupを使ってGroup Inputをリセットします。

Inputに反映5 Reset Groupをする

これ、いらないだろうと思うんですが、ここがミソなんです

Inputはユーザーが値を変更できます。プロパティエディタのInitial Valueはあくまで初期値であって、変更してしまった場合、Inputの値を変更できないのです。

以下が、Resetを設定しなかった場合の動きです。

Resetを設定しない場合

反映をクリックしているのに、変更した反映用Inputには反映されないですよね。

Resetを入れた時の動きです。

Resetを設定した場合

反映用Inputを書き換えても、入力用Inputの値に変更されることが確認できます。

どういうことかというと…

Reset Groupをすると、Group内のデータが初期設定になります。

Group Inputを初期化=
Input B(反映用Input)を初期化=
Input B(反映用Input)のInitial Content=Parent`s Group`s textを表示
となります。

この例では入力用Inputから値を引き継いでいるので、Group InputのData sourceをInput A`s Valueにしておいて、Reset Groupをしても同じ結果が得られます。

もし、「ユーザー名を入力して検索し、ヒットした1件からユーザーのEmailやその他のフィールドを取得したい」といった場合には、今回のようなCustom Stateを設定しましょう。Custom StateのDataをUserにしておき、Group InputのData sourceをCustom State`s emailとすればできるはずです。

試してみてください。

タイトルとURLをコピーしました