From 073c9fabd4bde05159917f1e9d079243b5fbc949 Mon Sep 17 00:00:00 2001 From: Nickolay Kolev Date: Thu, 26 Jul 2018 14:59:19 +0200 Subject: [PATCH] Do not lose selected value in `selectFieldHelper` when validation fails --- yesod-form/ChangeLog.md | 5 +++++ yesod-form/Yesod/Form/Fields.hs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/yesod-form/ChangeLog.md b/yesod-form/ChangeLog.md index fe6ea541..c5cad19b 100644 --- a/yesod-form/ChangeLog.md +++ b/yesod-form/ChangeLog.md @@ -1,5 +1,10 @@ # ChangeLog for yesod-form +## Unreleased + +* make sure a select field does not lose the selected value even if a validation on the + field fails + ## 1.6.2 * Move `addClass` from private/undocumented in `Yesod.Form.Bootstrap3` to `Yesod.Form.Functions` [#1510](https://github.com/yesodweb/yesod/pull/1510) diff --git a/yesod-form/Yesod/Form/Fields.hs b/yesod-form/Yesod/Form/Fields.hs index ad372c39..ab27544f 100644 --- a/yesod-form/Yesod/Form/Fields.hs +++ b/yesod-form/Yesod/Form/Fields.hs @@ -759,7 +759,7 @@ selectFieldHelper outside onOpt inside opts' = Field , fieldEnctype = UrlEncoded } where - render _ (Left _) = "" + render _ (Left x) = x render opts (Right a) = maybe "" optionExternalValue $ listToMaybe $ filter ((== a) . optionInternalValue) opts selectParser _ [] = Right Nothing selectParser opts (s:_) = case s of