【FormBridge】ラベルの背景色の変更方法について

FormBridgeで一部のラベルの背景色を変更したりするのJavaScriptで実行しています。

基本的には実装できたのですが、条件分岐を設定したところ条件分岐後に表示される

指定のラベルの背景色が変更されなくなってしまいました。

条件分岐後のラベルの背景色も変更する方法はありませんでしょうか。

 

小林花子さん

こんにちは。

 

条件分岐に指定したフィールドのchangeイベント内で処理すればいけるかなと思いましたが、タイミングの問題でだめでした。

ということで、CSSでの対応を回答します。

 

フォーム画面は行ごとに「row」クラスが付いています。

ラベルは「ql-editor」クラスが付いています。

条件分岐で非表示になっても、HTML上の行は保持されますので、あらかじめ何番目にあるかをCSSで指定しておけば色変更可能と思います。

/* 1行目にあるラベル */
.row:nth-of-type(1) .ql-editor p {
  background-color: #ff0000;
}

/* 2行目にあるラベル */
.row:nth-of-type(2) .ql-editor p {
   background-color: #ff00ff;
}

koichiさま

ご教示ありがとうございます。

条件分岐後の項目が複数あるのですが、

その場合はご教示の通りcssで各行ひとつずつ指定するという方法でいいのでしょうか。

また、試しにcssを投入してみたところ、

ラベルに入力した文字の行に背景色がつくようになりました。

JavaScriptで指定しますと、横に配置しているフィールドの幅合わせて背景色もついていたのですが、そちらはまた指定の仕方が違うのでしょうか。

ご確認いただきありがとうございます。

対象フィールドが複数ある場合は、その行分(あるいはフィールド数分)をCSSで指定する必要があります。

 

JavaScriptで指定しますと、横に配置しているフィールドの幅合わせて背景色もついていたのですが、そちらはまた指定の仕方が違うのでしょうか。

背景色の範囲について私の認識が誤っているかもしれません。

JavaScriptでできるならCSSでも同じようにできるはずですので、CSSのセレクタ部分を変えることで、それに応じた範囲に色を付けることは可能です。

行数分指定とのことで承知いたしました。

 

こちらに関しましてもご教示ありがとうございます。

css/JavaScriptに関しましては初心者なので申し訳ないのですが、この場合はpをdivに変えるような感じになるのでしょうか。

JavaScriptでできるならCSSでも同じようにできるはずですので、CSSのセレクタ部分を変えることで、それに応じた範囲に色を付けることは可能です。

範囲を見たいのでJavaScriptで付けた背景色の画面キャプチャを投稿可能でしょうか。

こちらがそれぞれで指定したものになります。

jsは下記のコード、cssはいただいたもので反映しています。

fb.getElementByCode('test_field').style.backgroundColor = '#87cefa';

ありがとうございます。

おっしゃる通り、div要素ですね。

rowに対して「:nth-of-type」で何行目か

その配下のdivに対して「:nth-of-type」で何番目かを指定することでできます。

/* 1行目の1番目のdiv */
.row:nth-of-type(1) div:nth-of-type(1) {
    background-color: #ff00ff;
}

/* 1行目の2番目のdiv */
.row:nth-of-type(1) div:nth-of-type(2) {
    background-color: #0000ff;
}

/* 2行目の1番目のdiv */
.row:nth-of-type(2) div:nth-of-type(1) {
    background-color: #00ffff;
}

いただいた回答で試してみたところ想定通りのものになりました!

ご丁寧にありがとうございました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。