formlets/digestive-functors を使用して、実行時にフィールドを選択的に無効にする方法を見つけようとしています。フィールドを無効にすると、フィールドの表示と検証の両方が無効になります。
不自然な例: 基本的なフォームのデータ型が次のようになっているとします。
data Info =
Info {
favcolor :: String,
deptId :: Int,
company :: String,
agree :: Boolean
}
ただし、deptId
フィールドはユーザーが従業員である場合にのみ表示する必要があり、それ以外の場合はcompany
フィールドを表示する必要があります。また、agree
ユーザーがまだ [同意する] ボックスをクリックしていない場合は、フィールドが表示されます。
可能なバリエーションごとに異なるフォームタイプを作成したくありません:(favcolor、deptId、同意する)、(favcolor、deptId)、(favcolor、会社、同意する)、(favcolor、会社)。他に何ができますか?