diff --git a/lib/phoenix_html/form.ex b/lib/phoenix_html/form.ex
index 53a7eec..ed6f712 100644
--- a/lib/phoenix_html/form.ex
+++ b/lib/phoenix_html/form.ex
@@ -248,9 +248,10 @@ defmodule Phoenix.HTML.Form do
html_escape(value) == {:safe, "true"}
end
- def normalize_value(_type, value) do
- value
- end
+ def normalize_value(_type, nil), do: nil
+ def normalize_value(_type, true), do: true
+ def normalize_value(_type, false), do: false
+ def normalize_value(_type, value), do: html_escape(value)
@doc """
Returns options to be used inside a select.
diff --git a/test/phoenix_html/form_test.exs b/test/phoenix_html/form_test.exs
index 79e9319..9bd423b 100644
--- a/test/phoenix_html/form_test.exs
+++ b/test/phoenix_html/form_test.exs
@@ -114,7 +114,8 @@ defmodule Phoenix.HTML.FormTest do
end
test "for anything else" do
- assert normalize_value("foo", "") == ""
+ assert normalize_value("foo", nil) == nil
+ assert normalize_value("foo", "") == {:safe, [[[] | "<"], "other" | ">"]}
end
end