about summary refs log tree commit diff stats
path: root/src/server/buffer.nim
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/buffer.nim')
-rw-r--r--src/server/buffer.nim13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/buffer.nim b/src/server/buffer.nim
index 1e97a4bb..24dc7d3d 100644
--- a/src/server/buffer.nim
+++ b/src/server/buffer.nim
@@ -1200,8 +1200,17 @@ type ReadSuccessResult* = object
   repaint*: bool
 
 func implicitSubmit(input: HTMLInputElement): Option[Request] =
-  if input.form != nil and input.form.canSubmitImplicitly():
-    return submitForm(input.form, input.form)
+  let form = input.form
+  if form != nil and form.canSubmitImplicitly():
+    var defaultButton: Element
+    for element in form.elements:
+      if element.isSubmitButton():
+        defaultButton = element
+        break
+    if defaultButton != nil:
+      return submitForm(form, defaultButton)
+    else:
+      return submitForm(form, form)
 
 proc readSuccess*(buffer: Buffer, s: string): ReadSuccessResult {.proxy.} =
   if buffer.document.focus != nil: