well... it is a bug not not in web2py, in jQuery: http://www.johnnycode.com/blog/2010/04/08/jquery-form-serialize-doesnt-post-submit-and-button-values-duh/
We cannot fork jQuery to fix this. Eventually they will fix it. Massimo On Aug 23, 8:46 am, Miguel Lopes <mig.e.lo...@gmail.com> wrote: > As an update, the issue remains with the following combinations: > * if input type='submit' and different names > * if input type='button', with or without different name attributes > > However, input type='text' are present in form.vars. > > For the interested a solution for usage in components is to use set a hidden > input text field via the click event of each button. > Miguel > > On Mon, Aug 23, 2010 at 3:54 AM, Miguel Lopes <mig.e.lo...@gmail.com> wrote: > > I'm using the "same name to all input type submits" technique. This is very > > nice because it avoids some js and works like a charm :-) > > In a regular controller the code works flawlessly. However when I try to > > put it in a controller, it fails: > > > status_form = FORM(_id='status_form') > > for status in OPPTY_STATUS: > > btn = INPUT(_type='submit', _name='status', _value=status, > > _class='status_btn') > > status_form.append(btn) > > > if status_form.accepts(request.vars, session, formname='status_form'): > > # status_form.vars.status is None in component > > # status_form.vars.status corresponds to whatever submit was pressed in > > regular controller > > ... > > > It seems like the component mechanisms is ignoring the value of 'status'. > > > Miguel