フォームブロックに置いて各フィールドに対して初期入力値を設定する強化ガジェットのご紹介です。
name値と入力値を指定するだけで、自動的にフィールドタイプを判定して初期値が入力されます。
注意点
・入力コントロールで、[年/月/日][時/分/秒]の形式で設定してください
・HTML5で表示させているため、対応していないブラウザがあります
・HTML5で表示させているため、対応していないブラウザがあります
コード設定方法
ブロックもしくはページの Javascript タブにコードを貼り付けて、設定値を変更してください。
設定値は例で入れていますので、参考に変更をしてください。
Javascript
設定値
第一引数に対象のフィールドのname値を入力し、
第二引数に初期入力値を入力してください。
複数フィールドに初期入力値を指定したい場合は使用例の様に複数setInitialValueを記載してください。
設定値は例で入れていますので、参考に変更をしてください。
Javascript
// 設定値 function setInitialValues() { setInitialValue('f01', 'テキストフィールドの初期値'); setInitialValue('f02', 'テキストエリアの初期値'); setInitialValue('f03', '2'); // ラジオボタンの選択 setInitialValue('f04', '3'); // ドロップダウンの選択 setInitialValue('f05', ['1', '2']); // チェックボックスの選択 (複数の値) //日付・日時系のサンプル setInitialValue('f06:year', '2024'); setInitialValue('f06:month', '07'); setInitialValue('f06:day', '17'); setInitialValue('f06:hour', '10'); setInitialValue('f06:minute', '30'); setInitialValue('f06:second', '00'); setInitialValue('f06:tz', 'Asia/Tokyo'); //メールアドレスのサンプル setInitialValue('f012', 'example@example.com'); setInitialValue('f012:reenter', 'example@example.com'); } // 原則変更不可 // 複数強化パーツがある場合、変更あり window.onload = function() { setInitialValues(); }; // 変更不可 function setInitialValue(name, value) { const inputElement = document.querySelector(`[name="${name}"]`); if (inputElement) { // inputsが{}であるかどうかの条件をチェック const hiddenInput = document.querySelector('input[type="hidden"][name="session"]'); const sessionData = hiddenInput ? JSON.parse(hiddenInput.value) : {}; const inputsEmpty = sessionData.inputs && Object.keys(sessionData.inputs).length === 0; if (inputsEmpty) { // inputsが{}の場合のみ設定 if (inputElement.type === 'text' || inputElement.type === 'textarea' || inputElement.type === 'select-one' || inputElement.type === 'number' || inputElement.type === 'email') { inputElement.value = value; } else if (inputElement.type === 'radio') { const values = Array.isArray(value) ? value : [value]; document.querySelectorAll(`[name="${name}"]`).forEach(element => { element.checked = values.includes(element.value); }); } else if (inputElement.type === 'checkbox') { const values = Array.isArray(value) ? value : [value]; document.querySelectorAll(`[name="${name}"]`).forEach(element => { element.checked = values.includes(element.value); }); } } } }
設定値
setInitialValue('name値', '初期入力値');
第一引数に対象のフィールドのname値を入力し、
第二引数に初期入力値を入力してください。
複数フィールドに初期入力値を指定したい場合は使用例の様に複数setInitialValueを記載してください。
Thymeleafで設定する方法
Thymeleafを使用して各種入力フィールドに初期値を設定する方法を説明します。
以下は各フィールドタイプ別に初期値を設定する方法です。
1. テキスト入力フィールド
- 初期値は`th:value`属性で設定します。
- 例:
2. テキストエリアフィールド
- 初期値は`th:text`属性で設定します。
- 例:
3. ラジオボタンフィールド
- 初期選択状態は`th:checked`属性で設定します。
- 例:
4. ドロップダウンフィールド
- 初期選択状態は`option`タグの`th:selected`属性で設定します。
- 例:
5. チェックボックスフィールド
- 初期選択状態は`th:checked`属性で設定します。
- 例:
上記の設定により、各フィールドに初期値を設定することができます。
以下は各フィールドタイプ別に初期値を設定する方法です。
1. テキスト入力フィールド
- 初期値は`th:value`属性で設定します。
- 例:
th:value="初期入力値text"
2. テキストエリアフィールド
- 初期値は`th:text`属性で設定します。
- 例:
th:text="初期入力値area"
3. ラジオボタンフィールド
- 初期選択状態は`th:checked`属性で設定します。
- 例:
th:checked="${option.id == 1}"
4. ドロップダウンフィールド
- 初期選択状態は`option`タグの`th:selected`属性で設定します。
- 例:
th:selected="${option.id == 1}"
5. チェックボックスフィールド
- 初期選択状態は`th:checked`属性で設定します。
- 例:
th:checked="${option.id == 1 || option.id == 3}"
上記の設定により、各フィールドに初期値を設定することができます。