JavaScriptの必須制御と表示制御について以前問い合わせて回答をいただいたものです。 フォームにてJavaScriptによる出し分け制御を行っておりますが、 運用上問題ないか確認したい事象があり、ご相談です。 ■現在の実装 送迎タイプ(駅送迎/空港送迎)に応じて入力項目を出し分けしており、 非表示側の必須項目についてはダミー値を設定しております。 以前ご案内いただいた内容を参考に、 表示切替時に入力値も制御する形で実装しております。 ■確認したい事象 駅送迎を選択している場合でも、 非表示となっている空港送迎側項目のダミー値がDB上に保存されます。 例: ・フライト番号「0」 ・フライト時間「0時00分」 画面上には表示されていないため利用者には見えませんが、 DB上では実際の入力値との区別がつきにくい状態となっております。 このような運用はSPIRAL上問題ない想定でしょうか。 また、可能であれば、 非表示項目については未送信または空欄扱いとする実装方法がございましたら、ご教示いただけますと幸いです。 併せて、時刻入力項目にて、「00分」の場合のみエラー再表示時に値が消えてしまう事象も確認しております。 例: ・13時00分 → エラー再表示後「13時 分」となる ・13時01分 → 正常保持 こちらにつきましても、JavaScript制御上注意すべき点等ございましたらご教示いただけますと幸いです。 お手数をお掛けしますが、よろしくお願いいたします。
コメント
ご回答ありがとうございます。 ①演算トリガについて ご提案いただいた「演算トリガによる不要項目の空欄化」について確認したく存じます。 実現したい内容としては、 ・送迎タイプ=空港送迎 → 駅送迎側項目を空欄化 ・送迎タイプ=駅送迎 → 空港送迎側項目を空欄化 といった、条件による不要項目の値削除です。 演算トリガ上で、どの機能(条件分岐/値代入等)を使用して設定すればよいか、可能であれば設定イメージや参考例をご教示いただけますでしょうか。 ②併せて、時刻入力項目にて、「00分」の場合のみエラー再表示時に値が消えてしまう事象 確認したところ、「00」をダミー値削除対象として扱っていたことが原因でした。 ただ、時刻として成立しない値はSPIRAL側制御により入力できないため、 ダミー値を利用した運用自体に限界を感じております。 一方、時刻フィールド仕様との兼ね合いも影響している可能性があり、 別フィールド形式の利用も検討しております。 今回のように、「hh」「mm」を分けて入力し、JavaScriptで表示制御を行うケースにおいて、推奨されるフィールド形式や実装方法がございましたら、 ご教示いただけますでしょうか。 どうぞよろしくお願いいたします。
ご連絡いただきましてありがとうございます。 > ①演算トリガについて 条件分岐につきましては、ご記載いただいております、「送迎タイプ」の値により分岐ください。 演算トリガのIF文にて、【セレクトフィールド = ラベル値】などの条件を指定することが可能です。 値を空欄(null)で更新する場合には、null更新用のフィールドをご用意いただく必要がございます。 「null更新用のフィールド」をご用意いただき、ifの条件に当てはまった際に【該当のフィールド = null更新用のフィールド】とすることで、 値をnullで更新することが可能となります。 本件の場合に実装する演算トリガのイメージは下記となります。 ▼演算トリガのイメージ ・IF【送迎タイプ = 空港送迎】 ・送迎ルート = null更新用セレクト ・利用希望時刻 = null更新用時刻 ※送迎ルート、利用希望時刻が駅送迎の場合に値が入力される値の想定です。 演算トリガにつきましては、下記をご参照ください。 ▼演算トリガ https://support.smp.ne.jp/manuals/trigger4/ > ②併せて、時刻入力項目にて、「00分」の場合のみエラー再表示時に値が消えてしまう事象 日付以外の制御ですと、「数字・記号・アルファベット」での数字のみ、入力できる数字に制限をかけることや、 セレクトフィールドで項目を時間に変更し選択させることも可能ですが、抽出ルールで使用できないことや、 時間的に正しくない値「99」などが入力される可能性がございますので、推奨される方法ではございません。 代わりにダミーデータとして、「99」を入れることができるようになりますので、使用する目的や運用に応じてご検討いただけますと幸いです。 ご確認の程、よろしくお願いいたします。
お世話になっております。 以前ご相談しておりました「駅送迎」と「空港送迎」を分けて選択する仕様につきましては、結局「空港送迎」のみの運用となったため、その件は解消しております。 そのうえで、新たにご相談です。 現在、「車種選択」はラジオボタンで選択する仕様となっていますが、 行き・帰りをそれぞれ選択する必要があることから、表形式のレイアウトに変更し、各項目をボタンで選択できる形で実装を進めております。 入力画面では想定どおりに動作しているのですが、 確認画面へ遷移すると、入力画面上の「行き」「帰り」の対応関係が保持されず、選択された項目のみが表示されてしまいます。 ▼確認用URL https://area11.smp.ne.jp/area/is?SMPFORM=nd-nfkiq-3d5143b6e6851ac6c065572c70afc1d1 このような実装において、確認画面でも入力画面と同様に「行き」「帰り」の対応関係を維持した状態で表示する方法はございますでしょうか。 もし仕様上難しい場合は、その旨ご教示いただけますと幸いです。 お手数をおかけいたしますが、ご確認のほどよろしくお願いいたします。
ご質問ありがとうございます。 >このような実装において、確認画面でも入力画面と同様に「行き」「帰り」の対応関係を維持した状態で表示する方法はございますでしょうか。 差し替えキーワードはその設問で選んだ選択肢がすべて表示されるため、表組みの関係をそのまま維持できませんが、差し替えキーワードをCSSのclass名に含めることで、対象を選択した場合のclass名と選択肢ていない場合のclass名に分けることができます。 ■例:差し替えキーワード:「cartype」の場合 確認ページに「$cartype:1$」タグを記載し、1つ目の選択肢を選択した場合、「checked」に差し替わります。 ■CSS .disp_{ display: none; } ■HTML <span class="disp_$cartype:1$">◯</span>ラグジュアリークラス(\34,000) 選択された時(class名:disp_checked)は◯が表示されますが、非選択の時(class名:disp_)は◯がCSSで非表示となります。 上記であれば表組みは固定しつつ、どれを選んでいるかが判別可能です。 お手数をおかけしますがご確認よろしくお願いします。
ご連絡ありがとうございます。 ご教示いただいた内容で解決できそうです。 一方、 「空港→ホテル」「ホテル→空港」をそれぞれ利用有無で選択していただき、 チェックを入れた方のみ入力必須とするような仕様にする必要が出てきそうです。) □ 空港→ホテルを利用する ・ご利用空港 ・フライト番号 ・フライト到着時間 □ ホテル→空港を利用する ・ご利用空港 ・フライト番号 ・フライト出発時間 ・ホテル出発ご希望時間 これらのチェックボックスに応じて、関連する入力項目のみを必須入力にすることは、SPIRALの標準機能で実現可能でしょうか。 なお、JavaScript等による項目の表示・非表示制御は利用しない前提で検討しています。
ご確認ありがとうございます。 >ご教示いただいた内容で解決できそうです。 解決できそうで何よりです。 >これらのチェックボックスに応じて、関連する入力項目のみを必須入力にすることは、SPIRALの標準機能で実現可能でしょうか。 何かを選んだことに連動して必須とする制御はJavaScriptを使用いただく必要がございます。 もしくは確実に入力いただけるわけではありませんが、文言等で「◯◯を選んだ方はご回答ください」などの説明をいれて対応いただくお客様もいらっしゃいます。 ただ、今回はフライトなどの入力がないと困る情報になるかと思いますので、表示非表示の制御をおこなわないようでしたら、JavaScriptで必須項目を入力し終えないと送信ボタンを表示しないなどの制御を入れていただくことをおすすめします。 お手数をおかけしますがご確認よろしくお願いします。
お世話になっております。 先日はご教示いただきありがとうございました。 ご案内いただいた方法で実装・検証したところ、「不要」選択時は入力項目が非表示となる一方で、DB上には以下のようなダミー値が格納されることを確認いたしました。 ・フライト番号:DUMMY ・フライト出発時間:0時00分 ・ホテル出発ご希望時間:0時00分 そこで、サンクスメールおよび通知メールについて質問です。 自動送信されるメールにおいて、 ・「利用する」の場合のみフライト情報を表示する ・「不要」の場合はフライト情報を表示しない、または「不要」と表示する ・DBに格納されたダミー値(DUMMY、0時00分等)はメールに表示しない といった条件分岐や表示制御は可能でしょうか。 標準機能で実現可能か、また難しい場合は推奨される実装方法がございましたらご教示いただけますと幸いです。 特にサンクスメールについては、お客様がご覧になるため、ダミー値が表示されない形としたいと考えております。 ご教示のほど、よろしくお願いいたします。
ご連絡いただきましてありがとうございます。 サンクスメールでは、複数のリストと封筒を設定いただくことで、 条件に応じて内容の異なるサンクスメールを送信可能です。 リストでは、抽出ルールを設定が可能ですので、条件ごとに抽出ルールを作成し、 条件に応じた封筒を作成し、リストと紐づけてください。 今回であれば利用すると不要用の2パターン文面を作成いただくイメージとなります。 リストの作成と抽出ルールの設定につきましては、下記をご参照ください。 ▼リスト作成 https://support.smp.ne.jp/manuals/mail_list/ ▼抽出ルール https://support.smp.ne.jp/manuals/extracts/ 登録時に担当者などに連絡を送る通知メールにつきましては、文面が固定になります。 担当者も表示項目を変えたい場合は通知メールではなくサンクスメールをご利用ください。 DBに通知先メールアドレスとしてメールアドレスの項目を追加し、メールアドレスを固定で登録されるようにご設定いただき、 上記の通知先メールアドレスを配信先にしていただくことで文面を送り分けることが可能です。 ご確認の程、よろしくお願いいたします。
ナレッジ
向上チーム
お問い合わせいただきありがとうございます。 >画面上には表示されていないため利用者には見えませんが、 >DB上では実際の入力値との区別がつきにくい状態となっております。 >このような運用はSPIRAL上問題ない想定でしょうか。 SPIRALフォームの入力必須をを活用しつつJSで表示制御を行う場合は 上記のご運用いただいても問題ございません。 データ上の区別がつきにくいという点が問題といえば問題になります。 >非表示項目については未送信または空欄扱いとする実装方法がございましたら、ご教示いただけますと幸いです。 SPIRALの入力必須制御は使わずJavaScriptで必須を制御する(送信ボタンが 押せなくなるなど)か演算トリガをご活用いただき、値を削除するなどの 方法がございます。 演算トリガはフォームに登録された後に動作するため、フォーム上の 必須制御の影響を受けない形になります。 ▼トリガ https://support.smp.ne.jp/manuals/db/trigger/ >併せて、時刻入力項目にて、「00分」の場合のみエラー再表示時に値が消えてしまう事象も確認しております。 値としては半角の数字で00でも0でも登録可能となっております。 例えば00をダミー時の値として削除してしまっているなどの可能性は ございませんでしょうか。 JavaScript以外ですとフィールド別チェック設定にて入力範囲を設定いただいた場合、(例えば13:01-19:00)値によってはエラーとなる可能性がございます。 分が消えていることからJavaScriptの動作についても ご確認いただけますでしょうか。 ご確認よろしくお願いします。
-
いいね
2026年5月26日(火)