sorry Massimo to insist upon this but I would like to get it clear. I understand this: if you want to validate one field you have to put that field in the FORM() of the controller, this duplication is the trade off to get validation.
So this is the way to preserve validation: Controller: def index(): form=FORM(INPUT(_name='test', requires=IS_NOT_EMPTY())) if form.accepts(request.vars,session=None,formname='test'): response.flash='form accepted' elif form.errors: response.flash='form has errors' else: response.flash='please fill the form' return dict() View: <form> <input name='test' type='text' /> <input type='submit' /> <input type='hidden' name='_formname' value='test' /> </form> thanks carlo On 17 Giu, 17:07, mdipierro <mdipie...@cs.depaul.edu> wrote: > in your code, the form that accepts is form=FORM() and it contains no > fields. No variable is transferred from request.vars to form.vars. > There are no errors because there are no fields. > > The {{=INPUT(....)}} is the view get serialized when the form is > displayed but it is not used by accept because it is not part of the > form. > > While you can use this syntax to build custom forms, you cannot use > this syntax to process forms. > > Massimo > > On Jun 17, 5:22 am, carlo <syseng...@gmail.com> wrote: > > > From the manual there is no reason this should not work, but the form > > is accepted even with the empty field. Why? Thank you > > > carlo > > > controller: > > > def index(): > > form=FORM() > > if form.accepts(request.vars,session,formname='test'): > > response.flash='form accepted' > > elif form.errors: > > response.flash='form has errors' > > else: > > response.flash='please fill the form' > > return dict() > > > view: > > > {{extend 'layout.html'}} > > <form> > > <input name='text' type='text'/> > > {{=INPUT(_name='prova',_type='text',requires=IS_NOT_EMPTY())}} > > <input type='submit'/> > > <input type='hidden' name="_formname" value="test"/> > > </form> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---