summaryrefslogtreecommitdiff
path: root/forms.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'forms.fnl')
-rw-r--r--forms.fnl11
1 files changed, 5 insertions, 6 deletions
diff --git a/forms.fnl b/forms.fnl
index c75daec..50c0efa 100644
--- a/forms.fnl
+++ b/forms.fnl
@@ -235,7 +235,8 @@
(fn render-form [form data errors]
(HTML
- [:form {:class "form" :enctype "multipart/form-data" :method "POST"}
+ [:form {:class "form" :enctype "multipart/form-data" :method "POST"
+ :onsubmit "this.querySelector('button').disabled = true"}
(table.concat
(lib.append
(icollect [_ group (ipairs form)]
@@ -245,9 +246,7 @@
(table.concat
(icollect [_ field (ipairs group.fields)]
(field.html (. data field.name) (. errors field.name))))]))
- (HTML [:button {:type "submit"
- :onclick "this.disabled = true; this.form.submit();"}
- "Сохранить"])))]))
+ (HTML [:button {:type "submit"} "Сохранить"])))]))
(fn html-form->data [form data db]
(each [_ group (ipairs form)]
@@ -257,7 +256,7 @@
(tset data field.name (field.value-from-html value {: data : db})))))
data)
-(fn validate-form [form data]
+(fn validate [form data]
(var errors [])
(each [_ group (ipairs form)]
(each [_ field (ipairs group.fields)]
@@ -339,6 +338,6 @@
: select-input
: render-form
: html-form->data
- : validate-form
+ : validate
: form-insert-sql-statement
: form-update-sql-statement}