よくある質問
入力欄が表示されない、行を追加したい、ハンドルを変更したい、といったよくあるご質問への回答をまとめました。
コンテンツデータ編集画面に入力欄が表示されません
もっとも多い原因は、MTAppjQuery がインストールされていない、または無効になっていることです。スケジュールの入力 UI は MTAppjQuery が提供する mtapp.scheduleField() で描画されるため、MTAppjQuery が動作していない環境では入力欄が表示されません(エラーメッセージも表示されません)。
システム → ツール → プラグイン で、MTAppjQuery(v3.1.0 以上)が有効になっていることをご確認ください。
MTAppjQuery が有効な場合は、次の点をご確認ください。
- コンテンツタイプ側の「入力項目」が 1 件も設定されていない(列が無いため表が表示されません)
- 入力項目の「オプション」欄が空欄、または選択肢が重複している(次の質問をご覧ください)
mt-static/plugins/ScheduleField/dist/schedule.jsが配置されていない- ブラウザに古い JavaScript がキャッシュされている(スーパーリロードをお試しください)
カレンダーが表示されず、ブラウザのコンソールにエラーが表示されます
コンテンツデータ編集画面でカレンダー全体、または日付ごとの表が表示されず、ブラウザの開発者ツールのコンソールに次のいずれかのエラーが表示される場合は、入力項目の「オプション」欄(選択肢)の設定が原因です。
Uncaught TypeError: Cannot read properties of null (reading 'split')Uncaught Error: https://svelte.dev/e/each_key_duplicateタイプが「ドロップダウン」「チェックボックス」「ラジオボタン」の入力項目で、次のどちらかに当てはまると発生します。
- 「オプション」欄が空欄になっている(1 つ目のエラー)
- 同じ選択肢が重複して入力されている(例:
1,2,2。2 つ目のエラー)
コンテンツタイプ編集画面では、該当の項目は「オプション」欄が空欄に見えるだけで、エラーは表示されません。次の手順で設定を修正してください。
- コンテンツタイプの編集画面で、スケジュールフィールドの「入力項目」を表示する
- タイプが「ドロップダウン」「チェックボックス」「ラジオボタン」の行で、「オプション」欄が空欄になっていないか、選択肢が重複していないかを確認する
- 選択肢をカンマ区切りで、重複のないように入力する
- コンテンツタイプを保存し、コンテンツデータ編集画面を開き直す
コンテンツタイプの設定を変更しても、入力済みのスケジュールのデータは変わりません。
カレンダーが表示されない状態のまま、既存のコンテンツデータを保存しないでください。 画面上に保存用の入力欄が作られていないため、スケジュールフィールドの値が空の状態で上書きされるおそれがあります。
コンテンツタイプを保存すると「入力項目」が消えます
ScheduleField v1.3.0 / v1.3.1 を Movable Type 9 の標準状態で使用した場合に発生する不具合です。v1.3.2 で修正済みです。「v1.3.2 へのアップデート」をご覧ください。
好きな行数の表を入力したいのですが
スケジュールフィールドは、選択した月の日数分の行を自動生成する仕様です。行を任意に追加・削除することはできません。
日付に紐づかない任意の行数の表を入力したい場合は、MTAppjQuery の mtapp.multiField() をご検討ください。
ハンドルに日本語は使えますか
使用できません。半角の英数字とアンダースコア(_)のみです。それ以外の文字は入力時に自動的に削除されます。
ハンドルを変更したら、入力済みのデータが表示されなくなりました
データは JSON のキーとしてハンドル名で保存されているため、ハンドルを変更すると以前のデータは表示されなくなります。元のハンドル名に戻すと、再び表示されます。
元のハンドル名がわからない場合は、コンテンツデータ編集画面の「データを表示」で保存されている JSON のキー名をご確認ください。
月を切り替えたら入力内容が消えました
日数が少ない月に切り替えると、超過した日付の行(31 日目など)のデータは破棄されます。切り替え前の状態には戻せません。保存前に内容をご確認ください。
1 つのフィールドで複数の月を管理できますか
できません。スケジュールフィールドが保存するのは 1 つの年月分のデータです。月ごとにコンテンツデータを分けるか、扱う月の数だけスケジュールフィールドを追加してください。
データラベルにスケジュールフィールドを指定できますか
指定できません。データラベルには単一行テキストなどのフィールドをご利用ください。
コンテンツデータ一覧に列として表示できますか
表示できません。入力内容を確認するには、コンテンツデータの編集画面を開いてください。
「必須」に設定しても未入力エラーになりません
スケジュールフィールドは、入力画面を開いた時点で年月と日付行を含む JSON を保存します。そのため値が空にならず、未入力としては検出されません。入力漏れを判定したい場合は、テンプレート側で各項目の値を確認してください。
テンプレートで JSON をそのまま出力したい
<mt:ContentFieldValue /> をそのまま書くと、保存されている JSON 文字列が出力されます。JavaScript に渡す場合は encode_js="1" を付けてください。
MTAppjQuery のライセンスがないと使えませんか
ScheduleField は MTAppjQuery のオプションプラグインです。ご利用には MTAppjQuery の有効なライセンスが必要で、ライセンスをお持ちの方は追加費用なしでご利用いただけます。
Movable Type 8 でも使えますか
ScheduleField v1.3.x は、Movable Type 8 系の Riot 方式のコンテンツタイプ編集画面にも対応しています。ただし v1.3.2 の動作確認は Movable Type 9.0.8 で実施しています。