Hmm, I tried your exact code, and it works for me (whether or not I'm logged
in). When you first submit, are the appropriate variables coming through in
request.vars? Can you use the browser developer tools to check the HTML of
the form when it is first loaded?
Anthony
On Sunday, August 14, 2011 3:01:24 PM UTC-4, weheh wrote:
> As you can see, nothing really fancy here.
>
> def my_action():
> form=SQLFORM.factory(
> Field('text_field','text',
> length=100000 if auth.user_id else 50,
> default=T("default text") if not auth.user_id else '',
> requires=IS_NOT_EMPTY()),
> _id='text-form')
>
> if form.accepts(request.vars,session):
> # the body of this won't be executed the first time the form
> # is loaded, but it does get executed every time thereafter
> # so this is not where the problem is
> elif form.errors:
> # this condition is tested the first time the form is
> # submitted, but not thereafter because the form
> # accepts properly the second and subsequent times
>
> return dict(form=form)
>
>
> The view is down below some widgets and stuff. It always displays
> properly.
> Here's the actual LOAD statement:
>
> <div>{{=LOAD('my_controller','my_action.load',ajax=True)}}</div>
>
>
>
> On Aug 14, 2:36 pm, Anthony <[email protected]> wrote:
> > Can you show your controller and view code?
> >
> >
> >
> >
> >
> >
> >
> > On Sunday, August 14, 2011 2:14:19 PM UTC-4, weheh wrote:
> > > I have a componentized form that is behaving very strangely. The form
> > > is very simple -- just a text field.
> >
> > > form=SQLFORM.factory(Field('text_in','text'))
> >
> > > if form.accepts(request.vars, session):
> > > .... do stuff ...
> >
> > > The first time I load the form, it loads fine. I traced it in Eclipse
> > > and saw the form getting created with SQLFORM.factory. When I fill in
> > > text, however, the form does not accept, nor does it generate any
> > > error. Inspecting in Eclipse shows form.vars is empty.
> >
> > > OK, so now the form is still visible since it was reloaded. I enter
> > > the same text again and click submit. This time, the form.accepts(...)
> > > accepts the form and processes it.
> >
> > > I upgraded to the latest and greatest version but still get this
> > > strange behavior. Anybody have an idea what's going on?