diff --git a/src/calibre/web/jsbrowser/forms.py b/src/calibre/web/jsbrowser/forms.py index e71f1698fa..01c64b7146 100644 --- a/src/calibre/web/jsbrowser/forms.py +++ b/src/calibre/web/jsbrowser/forms.py @@ -8,6 +8,8 @@ __license__ = 'GPL v3' __copyright__ = '2011, Kovid Goyal ' __docformat__ = 'restructuredtext en' +from itertools import chain + from calibre import as_unicode default_timeout = object() @@ -116,6 +118,7 @@ class Form(object): self.radio_controls = {name:RadioControl(name, [z.qwe for z in rc if z.name == name]) for name in rc_names} selects = list(map(SelectControl, qwe.findAll('select'))) self.select_controls = {x.name:x for x in selects} + self.button_controls = list(map(Control, qwe.findAll('button'))) @property def controls(self): @@ -173,7 +176,7 @@ class Form(object): sc = self.qwe.findFirst(submit_control_selector) if not sc.isNull(): return sc - for c in self.input_controls: + for c in chain(self.input_controls, self.button_controls): if c.type == 'submit': return c for c in self.input_controls: