0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CakePHP フォームの入力を検知して、背景色を変える

Posted at

作成の背景

よく可変で入力フォームを作成する事があり、備忘録として参考コードを残そうと思ったから。
どんな感じで書くっけ?って、思った時すぐ思い出せるように、まとめます。

環境

JQUery
CakePHP4

概要

DBテーブルにある回答フォームの配列から可変で複数のフォームが自動生成されます。
そのフォームを入力した際、視覚的に入力済みを確認できるよう入力した場合、背景色を変更します。
この変更をJSでやろうという事です。

さっそくコード

    $(document).ready(function() {
        $('input[type="checkbox"]').change(function() {
            var infoBox = $(this).closest('.info-box');
            //ここでcheckboxのcheckedの有無を確認してます。
            if ($(this).is(':checked')) { 
            infoBox.css('background-color', '#dc143c');
            } else {
            infoBox.css('background-color', '');
            }
        });
    });

全checkboxが対象になります。
状態が変わったcheckboxを着火

    <div class="row">
        <?php foreach ($questions as $question): ?>
            <div class="info-box" id="info-box-<?= $question->id ?>">
                <div class="spantag"><label><?= h($question->content) ?></div>
                    <div style="margin-top: 10px;">
                        <?php 
                        echo $this->Form->checkbox('answers.' . $question->id, ['value' => 1]);
                        ?>
                </div>
            </div>
        <?php endforeach; ?>
    </div>

感想

バックエンドの処理を考えていると、フロントのこういう事が疎かになってしまいます。
今回でだいぶ整理できました。
最後までお読みいただき、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?