ある案件で以下の連絡がありました。
・イベントに参加:大人、子ども、幼児の3種類の選択肢から、ラジオボタンで選ぶ
・ツアー1に参加:イベントに参加を選んだうえで、参加または不参加の2種類の選択肢から、ラジオボタンで選ぶ
・ツアー2に参加:イベントに参加を選んだうえで、参加または不参加の2種類の選択肢から、ラジオボタンで選ぶ
・イベントに参加+オプションイベント1に参加:参加をラジオボタンで選ぶ。この項目を選ぶときは、イベントに参加、ツアー1に参加、ツアー2に参加を選べない。
・イベントに参加+オプションイベント2に参加:参加をラジオボタンで選ぶ。この項目を選ぶときは、イベントに参加、ツアー1に参加、ツアー2に参加を選べない。
これはどういうことなんだろ?と思い、選べる/選べないと表にして考えてみました。
イベントに参加 | 大人 | 子ども | 幼児 | 選択不可 | 選択不可 |
---|---|---|---|---|---|
ツアー1に参加 | 選択可 | 選択可 | 選択可 | 選択不可 | 選択不可 |
ツアー2に参加 | 選択可 | 選択可 | 選択可 | 選択不可 | 選択不可 |
イベント+オプションイベント1に参加 | 選択不可 | 選択不可 | 選択不可 | 選択可 | 選択不可 |
イベント+オプションイベント2に参加 | 選択不可 | 選択不可 | 選択不可 | 選択不可 | 選択可 |
どれもラジオボタンで選択する方式が前提です。
ラジオボタンで選ばれたら、選んでほしくない項目を無効状態にして、選択不可にしなければなりません。
選択不可にするのはいいのですが、イベント1+オプションイベント1が正しい選択なのに、イベントに参加で大人を誤って選んでしまった場合、選びなおせるようにしなければなりません。
そうなると、洗濯不可の項目を無効にはできません。
選択は有効にしたまま、選択不可になった項目の選択状態を解除しなければならず、ラジオボタンの標準の機能ではできないので、コードを書かなけれなりません。
依頼元は、このような複雑さがあると、理解されているのでしょうか?
Photo by Tim Mossholder on Unsplash
もう少し簡単な選択方法
選択を整理して、もっと簡単に選択できるようにしようと考えると、以下のようになります。
イベントに参加 | 大人 | 子ども | 幼児 | イベント+オプションイベント1に参加 | イベント+オプションイベント2に参加 |
---|---|---|---|---|---|
ツアー1に参加 | 選択可 | 選択可 | 選択可 | 選択不可 | 選択不可 |
ツアー2に参加 | 選択可 | 選択可 | 選択可 | 選択不可 | 選択不可 |
イベント+オプションイベント1に参加とイベント+オプションイベント2に参加を別の項目ではなく、イベントに参加の選択肢にすれば、ツアー1に参加、ツアー2に参加を無効状態にするコードを書くだけです。
こちらの方が、わかりやすいです。
依頼元には両方の表と説明を書いて送りました。
どのような判断をされるのか、待っている状況です。