Use a macro for form tags

This will stop us repeatedly forgetting to add `novalidate` and
`autocomplete='off'` to our forms (which is how most of them are set
up).

It uses sensible defaults, based on how we most-commonly configure
forms:
- most of our forms are `post`ed (but this can be overridden)
- `autocomplete` should only be enabled where it makes sense, otherwise
  it’s more annoying than useful (but this can be overriden)
- we should never be using HTML5 form validation because our own error
  styles and messages are better
This commit is contained in:
Chris Hill-Scott
2018-09-19 12:39:36 +01:00
parent 5ab876aeab
commit d9da219b7e
72 changed files with 257 additions and 170 deletions

View File

@@ -0,0 +1,20 @@
{% macro form_wrapper(
method="post",
action=None,
autocomplete=False,
class=None,
id=None,
module=None
) %}
<form
method="{{ method }}"
{% if action %}action="{{ action }}"{% endif %}
{% if not autocomplete %}autocomplete="off"{% endif %}
{% if class %}class="{{ class }}"{% endif %}
{% if id %}id="{{ id }}"{% endif %}
{% if module %}data-module="{{ module }}"{% endif %}
novalidate
>
{{ caller() }}
</form>
{% endmacro %}