You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Muhammad Gelbana <m....@gmail.com> on 2012/11/19 16:28:08 UTC

[5.3.6] Validation errors are only shown on the second submit

When I first load my page, some form's fields are changed through ajax and
then I submit the form (Without ajax) with empty fields to force it into
validation errors. But no errors are shown. If just submit the form again,
exactly as it was the last time, the errors are shown !

That's how I inject my components
private static final int MULTIPLE_BRAS_LOOP_END = 20;

>     @InjectComponent
>     private TextField dnsServerField, domainNameField;
>     @InjectComponent("testConfigurationForm")
>     private Form testForm;


I checked the form using .getHasErrors() and it returned true on both
submits. It's only that on the first submit, nothing is shown for the
client !

I also forced the form into 2 different validation errors and only the
second submission's error was shown, so its not like showing validation
errors for previous submissions. Even more, this strange behavior stops
after the first submission, everything works as expected !

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Muhammad Gelbana <m....@gmail.com>.
By "changing" or "updating" the form fields I do *NOT* mean entering some
values into them of course, but I mean reloading the fields using ajax, to
load a whole another set of fields.

On Mon, Nov 19, 2012 at 5:37 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> I use <t:error> for each field.
>
> Here is some more enlightening investigation results, based on the fact
> that the form's fields are changed using ajax, once the fields are updated,
> the fields errors are shown only after the first submission and the same
> happens every time the form field's are changed. So it has something to do
> with binding the fields with the "validation tracker on the client side".
>
> In another words, on the second submission, the page is fully loaded so
> the "client side validation tracker" is setup right and bound to the
> fields. But when I update the form's fields using ajax, it's broken. I have
> a feeling this could be wrong but its my very best guess so far.
>
>
> On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ik...@gmail.com>wrote:
>
>> Do you use <t:errors> component to show errors for whole form or just use
>> separate <t:error> components to show errors for particular field?
>>
>> On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <m.gelbana@gmail.com
>> >wrote:
>>
>> > When I first load my page, some form's fields are changed through ajax
>> and
>> > then I submit the form (Without ajax) with empty fields to force it into
>> > validation errors. But no errors are shown. If just submit the form
>> again,
>> > exactly as it was the last time, the errors are shown !
>> >
>> > That's how I inject my components
>> > private static final int MULTIPLE_BRAS_LOOP_END = 20;
>> >
>> > >     @InjectComponent
>> > >     private TextField dnsServerField, domainNameField;
>> > >     @InjectComponent("testConfigurationForm")
>> > >     private Form testForm;
>> >
>> >
>> > I checked the form using .getHasErrors() and it returned true on both
>> > submits. It's only that on the first submit, nothing is shown for the
>> > client !
>> >
>> > I also forced the form into 2 different validation errors and only the
>> > second submission's error was shown, so its not like showing validation
>> > errors for previous submissions. Even more, this strange behavior stops
>> > after the first submission, everything works as expected !
>> >
>>
>>
>>
>> --
>> BR
>> Ivan
>>
>
>

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Muhammad Gelbana <m....@gmail.com>.
Just wondering if anyone had time to look this up. I can't decide if I did
anything wrong. Thanks.

On Tue, Nov 20, 2012 at 12:51 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> Ok so I ripped much of my original page's and kept the essentials only.
> Thank you for your time.
>
>
> On Tue, Nov 20, 2012 at 11:34 AM, Ivan Khalopik <ik...@gmail.com>wrote:
>
>> It doesn't matter how these controls are rendered by normal request or by
>> zone update. They all will be rendered with fixed names and with errors
>> connected to them.
>> Just some rules to make this all work:
>> - place FixedControlName mixin on form or zone.
>> - define t:id attribute explicitly for all form controls. It is needed to
>> prevent name conflicts between requests.
>> - in zone update handler return whole zone component instead of just its
>> body. It will prevent processing of actions saved by actually invisible
>> components
>>
>> E.g. you have form without these controls:
>>
>> <form ...>
>> <input name="brief"/>
>>
>> </form>
>>
>> Then you do something and some other controls are shown by ajax:
>>
>> <form ...>
>> <input name="brief"/>
>> <input name="full_3eaBasdfGjh"/> <!-- required, hash added to name because
>> of ajax request -->
>>
>> </form>
>>
>> Then you submit form, validation fails and error are saved for ontrol with
>> name 'full_3eaBasdfGjh', then page is refreshed:
>>
>> <form ...>
>> <input name="brief"/>
>> <input name="full"/> <!-- required, hash is not added as it is normal
>> request -->
>>
>> </form>
>>
>> As name is 'full' now and error is saved for 'full_3eaBasdfGjh' you have
>> no
>> errors on the page. Then you make the same error and submit form. Now this
>> error will be saved for control with name 'full' and after page is
>> refreshed it will be shown with error.
>>
>> When you use FixedControlName mixin you will always have 'full' name, and
>> everything will work as expected.
>>
>> The other part of this issue is how to show invisible components(inside
>> block) when validation fails. Usually it depends on some other submitted
>> control value. If not then you can add hidden control to save this state.
>> Maybe you can provide some code snippet for better help.
>>
>> On Mon, Nov 19, 2012 at 11:14 PM, Muhammad Gelbana <m.gelbana@gmail.com
>> >wrote:
>>
>> > I will recklessly assume I have fully comprehended your mixin. I
>> couldn't
>> > get it to work thought since my zones are initially empty (filled later
>> > through ajax or a t:delegate if the page is refreshed) and your mixin
>> > operates on components being rendered. Also I have my fields in
>> > *t:block* elements
>> > and they aren't rendered initially by nature of course.
>> >
>> > I'm fairly new to these methods so I'm stuck here and I have no ideas to
>> > workaround this. Don't you think this deserves a JIRA as at least an
>> > improvement if not a bug ? Or may be any other ideas ?
>> >
>> > And thanks a million for your help :)
>> >
>> > On Mon, Nov 19, 2012 at 5:44 PM, Ivan Khalopik <ik...@gmail.com>
>> > wrote:
>> >
>> > > All this because of changed form controls names after ajax update
>> (some
>> > > hash added to the end). After form submission this controls saves
>> their
>> > > state for changed names (with hash) and then are rendered to client
>> with
>> > > normal names(without hash). As they searches for erros by name they
>> can
>> > not
>> > > find any.
>> > > I have my solution for such sittuations, to fix control names, make
>> them
>> > > static. I've described this here:
>> > >
>> > >
>> >
>> http://mutabra.blogspot.com/2012/09/tapestry-fixed-control-name-fixin.html
>> > >
>> > > On Mon, Nov 19, 2012 at 6:37 PM, Muhammad Gelbana <
>> m.gelbana@gmail.com
>> > > >wrote:
>> > >
>> > > > I use <t:error> for each field.
>> > > >
>> > > > Here is some more enlightening investigation results, based on the
>> fact
>> > > > that the form's fields are changed using ajax, once the fields are
>> > > updated,
>> > > > the fields errors are shown only after the first submission and the
>> > same
>> > > > happens every time the form field's are changed. So it has
>> something to
>> > > do
>> > > > with binding the fields with the "validation tracker on the client
>> > side".
>> > > >
>> > > > In another words, on the second submission, the page is fully
>> loaded so
>> > > the
>> > > > "client side validation tracker" is setup right and bound to the
>> > fields.
>> > > > But when I update the form's fields using ajax, it's broken. I have
>> a
>> > > > feeling this could be wrong but its my very best guess so far.
>> > > >
>> > > > On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ikhalopik@gmail.com
>> >
>> > > > wrote:
>> > > >
>> > > > > Do you use <t:errors> component to show errors for whole form or
>> just
>> > > use
>> > > > > separate <t:error> components to show errors for particular field?
>> > > > >
>> > > > > On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <
>> > m.gelbana@gmail.com
>> > > > > >wrote:
>> > > > >
>> > > > > > When I first load my page, some form's fields are changed
>> through
>> > > ajax
>> > > > > and
>> > > > > > then I submit the form (Without ajax) with empty fields to
>> force it
>> > > > into
>> > > > > > validation errors. But no errors are shown. If just submit the
>> form
>> > > > > again,
>> > > > > > exactly as it was the last time, the errors are shown !
>> > > > > >
>> > > > > > That's how I inject my components
>> > > > > > private static final int MULTIPLE_BRAS_LOOP_END = 20;
>> > > > > >
>> > > > > > >     @InjectComponent
>> > > > > > >     private TextField dnsServerField, domainNameField;
>> > > > > > >     @InjectComponent("testConfigurationForm")
>> > > > > > >     private Form testForm;
>> > > > > >
>> > > > > >
>> > > > > > I checked the form using .getHasErrors() and it returned true on
>> > both
>> > > > > > submits. It's only that on the first submit, nothing is shown
>> for
>> > the
>> > > > > > client !
>> > > > > >
>> > > > > > I also forced the form into 2 different validation errors and
>> only
>> > > the
>> > > > > > second submission's error was shown, so its not like showing
>> > > validation
>> > > > > > errors for previous submissions. Even more, this strange
>> behavior
>> > > stops
>> > > > > > after the first submission, everything works as expected !
>> > > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > --
>> > > > > BR
>> > > > > Ivan
>> > > > >
>> > > >
>> > >
>> > >
>> > >
>> > > --
>> > > BR
>> > > Ivan
>> > >
>> >
>>
>>
>>
>> --
>> BR
>> Ivan
>>
>
>

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Muhammad Gelbana <m....@gmail.com>.
Ok so I ripped much of my original page's and kept the essentials only.
Thank you for your time.

On Tue, Nov 20, 2012 at 11:34 AM, Ivan Khalopik <ik...@gmail.com> wrote:

> It doesn't matter how these controls are rendered by normal request or by
> zone update. They all will be rendered with fixed names and with errors
> connected to them.
> Just some rules to make this all work:
> - place FixedControlName mixin on form or zone.
> - define t:id attribute explicitly for all form controls. It is needed to
> prevent name conflicts between requests.
> - in zone update handler return whole zone component instead of just its
> body. It will prevent processing of actions saved by actually invisible
> components
>
> E.g. you have form without these controls:
>
> <form ...>
> <input name="brief"/>
>
> </form>
>
> Then you do something and some other controls are shown by ajax:
>
> <form ...>
> <input name="brief"/>
> <input name="full_3eaBasdfGjh"/> <!-- required, hash added to name because
> of ajax request -->
>
> </form>
>
> Then you submit form, validation fails and error are saved for ontrol with
> name 'full_3eaBasdfGjh', then page is refreshed:
>
> <form ...>
> <input name="brief"/>
> <input name="full"/> <!-- required, hash is not added as it is normal
> request -->
>
> </form>
>
> As name is 'full' now and error is saved for 'full_3eaBasdfGjh' you have no
> errors on the page. Then you make the same error and submit form. Now this
> error will be saved for control with name 'full' and after page is
> refreshed it will be shown with error.
>
> When you use FixedControlName mixin you will always have 'full' name, and
> everything will work as expected.
>
> The other part of this issue is how to show invisible components(inside
> block) when validation fails. Usually it depends on some other submitted
> control value. If not then you can add hidden control to save this state.
> Maybe you can provide some code snippet for better help.
>
> On Mon, Nov 19, 2012 at 11:14 PM, Muhammad Gelbana <m.gelbana@gmail.com
> >wrote:
>
> > I will recklessly assume I have fully comprehended your mixin. I couldn't
> > get it to work thought since my zones are initially empty (filled later
> > through ajax or a t:delegate if the page is refreshed) and your mixin
> > operates on components being rendered. Also I have my fields in
> > *t:block* elements
> > and they aren't rendered initially by nature of course.
> >
> > I'm fairly new to these methods so I'm stuck here and I have no ideas to
> > workaround this. Don't you think this deserves a JIRA as at least an
> > improvement if not a bug ? Or may be any other ideas ?
> >
> > And thanks a million for your help :)
> >
> > On Mon, Nov 19, 2012 at 5:44 PM, Ivan Khalopik <ik...@gmail.com>
> > wrote:
> >
> > > All this because of changed form controls names after ajax update (some
> > > hash added to the end). After form submission this controls saves their
> > > state for changed names (with hash) and then are rendered to client
> with
> > > normal names(without hash). As they searches for erros by name they can
> > not
> > > find any.
> > > I have my solution for such sittuations, to fix control names, make
> them
> > > static. I've described this here:
> > >
> > >
> >
> http://mutabra.blogspot.com/2012/09/tapestry-fixed-control-name-fixin.html
> > >
> > > On Mon, Nov 19, 2012 at 6:37 PM, Muhammad Gelbana <m.gelbana@gmail.com
> > > >wrote:
> > >
> > > > I use <t:error> for each field.
> > > >
> > > > Here is some more enlightening investigation results, based on the
> fact
> > > > that the form's fields are changed using ajax, once the fields are
> > > updated,
> > > > the fields errors are shown only after the first submission and the
> > same
> > > > happens every time the form field's are changed. So it has something
> to
> > > do
> > > > with binding the fields with the "validation tracker on the client
> > side".
> > > >
> > > > In another words, on the second submission, the page is fully loaded
> so
> > > the
> > > > "client side validation tracker" is setup right and bound to the
> > fields.
> > > > But when I update the form's fields using ajax, it's broken. I have a
> > > > feeling this could be wrong but its my very best guess so far.
> > > >
> > > > On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ik...@gmail.com>
> > > > wrote:
> > > >
> > > > > Do you use <t:errors> component to show errors for whole form or
> just
> > > use
> > > > > separate <t:error> components to show errors for particular field?
> > > > >
> > > > > On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <
> > m.gelbana@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > When I first load my page, some form's fields are changed through
> > > ajax
> > > > > and
> > > > > > then I submit the form (Without ajax) with empty fields to force
> it
> > > > into
> > > > > > validation errors. But no errors are shown. If just submit the
> form
> > > > > again,
> > > > > > exactly as it was the last time, the errors are shown !
> > > > > >
> > > > > > That's how I inject my components
> > > > > > private static final int MULTIPLE_BRAS_LOOP_END = 20;
> > > > > >
> > > > > > >     @InjectComponent
> > > > > > >     private TextField dnsServerField, domainNameField;
> > > > > > >     @InjectComponent("testConfigurationForm")
> > > > > > >     private Form testForm;
> > > > > >
> > > > > >
> > > > > > I checked the form using .getHasErrors() and it returned true on
> > both
> > > > > > submits. It's only that on the first submit, nothing is shown for
> > the
> > > > > > client !
> > > > > >
> > > > > > I also forced the form into 2 different validation errors and
> only
> > > the
> > > > > > second submission's error was shown, so its not like showing
> > > validation
> > > > > > errors for previous submissions. Even more, this strange behavior
> > > stops
> > > > > > after the first submission, everything works as expected !
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > BR
> > > > > Ivan
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > BR
> > > Ivan
> > >
> >
>
>
>
> --
> BR
> Ivan
>

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Ivan Khalopik <ik...@gmail.com>.
It doesn't matter how these controls are rendered by normal request or by
zone update. They all will be rendered with fixed names and with errors
connected to them.
Just some rules to make this all work:
- place FixedControlName mixin on form or zone.
- define t:id attribute explicitly for all form controls. It is needed to
prevent name conflicts between requests.
- in zone update handler return whole zone component instead of just its
body. It will prevent processing of actions saved by actually invisible
components

E.g. you have form without these controls:

<form ...>
<input name="brief"/>

</form>

Then you do something and some other controls are shown by ajax:

<form ...>
<input name="brief"/>
<input name="full_3eaBasdfGjh"/> <!-- required, hash added to name because
of ajax request -->

</form>

Then you submit form, validation fails and error are saved for ontrol with
name 'full_3eaBasdfGjh', then page is refreshed:

<form ...>
<input name="brief"/>
<input name="full"/> <!-- required, hash is not added as it is normal
request -->

</form>

As name is 'full' now and error is saved for 'full_3eaBasdfGjh' you have no
errors on the page. Then you make the same error and submit form. Now this
error will be saved for control with name 'full' and after page is
refreshed it will be shown with error.

When you use FixedControlName mixin you will always have 'full' name, and
everything will work as expected.

The other part of this issue is how to show invisible components(inside
block) when validation fails. Usually it depends on some other submitted
control value. If not then you can add hidden control to save this state.
Maybe you can provide some code snippet for better help.

On Mon, Nov 19, 2012 at 11:14 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> I will recklessly assume I have fully comprehended your mixin. I couldn't
> get it to work thought since my zones are initially empty (filled later
> through ajax or a t:delegate if the page is refreshed) and your mixin
> operates on components being rendered. Also I have my fields in
> *t:block* elements
> and they aren't rendered initially by nature of course.
>
> I'm fairly new to these methods so I'm stuck here and I have no ideas to
> workaround this. Don't you think this deserves a JIRA as at least an
> improvement if not a bug ? Or may be any other ideas ?
>
> And thanks a million for your help :)
>
> On Mon, Nov 19, 2012 at 5:44 PM, Ivan Khalopik <ik...@gmail.com>
> wrote:
>
> > All this because of changed form controls names after ajax update (some
> > hash added to the end). After form submission this controls saves their
> > state for changed names (with hash) and then are rendered to client with
> > normal names(without hash). As they searches for erros by name they can
> not
> > find any.
> > I have my solution for such sittuations, to fix control names, make them
> > static. I've described this here:
> >
> >
> http://mutabra.blogspot.com/2012/09/tapestry-fixed-control-name-fixin.html
> >
> > On Mon, Nov 19, 2012 at 6:37 PM, Muhammad Gelbana <m.gelbana@gmail.com
> > >wrote:
> >
> > > I use <t:error> for each field.
> > >
> > > Here is some more enlightening investigation results, based on the fact
> > > that the form's fields are changed using ajax, once the fields are
> > updated,
> > > the fields errors are shown only after the first submission and the
> same
> > > happens every time the form field's are changed. So it has something to
> > do
> > > with binding the fields with the "validation tracker on the client
> side".
> > >
> > > In another words, on the second submission, the page is fully loaded so
> > the
> > > "client side validation tracker" is setup right and bound to the
> fields.
> > > But when I update the form's fields using ajax, it's broken. I have a
> > > feeling this could be wrong but its my very best guess so far.
> > >
> > > On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ik...@gmail.com>
> > > wrote:
> > >
> > > > Do you use <t:errors> component to show errors for whole form or just
> > use
> > > > separate <t:error> components to show errors for particular field?
> > > >
> > > > On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <
> m.gelbana@gmail.com
> > > > >wrote:
> > > >
> > > > > When I first load my page, some form's fields are changed through
> > ajax
> > > > and
> > > > > then I submit the form (Without ajax) with empty fields to force it
> > > into
> > > > > validation errors. But no errors are shown. If just submit the form
> > > > again,
> > > > > exactly as it was the last time, the errors are shown !
> > > > >
> > > > > That's how I inject my components
> > > > > private static final int MULTIPLE_BRAS_LOOP_END = 20;
> > > > >
> > > > > >     @InjectComponent
> > > > > >     private TextField dnsServerField, domainNameField;
> > > > > >     @InjectComponent("testConfigurationForm")
> > > > > >     private Form testForm;
> > > > >
> > > > >
> > > > > I checked the form using .getHasErrors() and it returned true on
> both
> > > > > submits. It's only that on the first submit, nothing is shown for
> the
> > > > > client !
> > > > >
> > > > > I also forced the form into 2 different validation errors and only
> > the
> > > > > second submission's error was shown, so its not like showing
> > validation
> > > > > errors for previous submissions. Even more, this strange behavior
> > stops
> > > > > after the first submission, everything works as expected !
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > BR
> > > > Ivan
> > > >
> > >
> >
> >
> >
> > --
> > BR
> > Ivan
> >
>



-- 
BR
Ivan

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Muhammad Gelbana <m....@gmail.com>.
I will recklessly assume I have fully comprehended your mixin. I couldn't
get it to work thought since my zones are initially empty (filled later
through ajax or a t:delegate if the page is refreshed) and your mixin
operates on components being rendered. Also I have my fields in
*t:block* elements
and they aren't rendered initially by nature of course.

I'm fairly new to these methods so I'm stuck here and I have no ideas to
workaround this. Don't you think this deserves a JIRA as at least an
improvement if not a bug ? Or may be any other ideas ?

And thanks a million for your help :)

On Mon, Nov 19, 2012 at 5:44 PM, Ivan Khalopik <ik...@gmail.com> wrote:

> All this because of changed form controls names after ajax update (some
> hash added to the end). After form submission this controls saves their
> state for changed names (with hash) and then are rendered to client with
> normal names(without hash). As they searches for erros by name they can not
> find any.
> I have my solution for such sittuations, to fix control names, make them
> static. I've described this here:
>
> http://mutabra.blogspot.com/2012/09/tapestry-fixed-control-name-fixin.html
>
> On Mon, Nov 19, 2012 at 6:37 PM, Muhammad Gelbana <m.gelbana@gmail.com
> >wrote:
>
> > I use <t:error> for each field.
> >
> > Here is some more enlightening investigation results, based on the fact
> > that the form's fields are changed using ajax, once the fields are
> updated,
> > the fields errors are shown only after the first submission and the same
> > happens every time the form field's are changed. So it has something to
> do
> > with binding the fields with the "validation tracker on the client side".
> >
> > In another words, on the second submission, the page is fully loaded so
> the
> > "client side validation tracker" is setup right and bound to the fields.
> > But when I update the form's fields using ajax, it's broken. I have a
> > feeling this could be wrong but its my very best guess so far.
> >
> > On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ik...@gmail.com>
> > wrote:
> >
> > > Do you use <t:errors> component to show errors for whole form or just
> use
> > > separate <t:error> components to show errors for particular field?
> > >
> > > On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <m.gelbana@gmail.com
> > > >wrote:
> > >
> > > > When I first load my page, some form's fields are changed through
> ajax
> > > and
> > > > then I submit the form (Without ajax) with empty fields to force it
> > into
> > > > validation errors. But no errors are shown. If just submit the form
> > > again,
> > > > exactly as it was the last time, the errors are shown !
> > > >
> > > > That's how I inject my components
> > > > private static final int MULTIPLE_BRAS_LOOP_END = 20;
> > > >
> > > > >     @InjectComponent
> > > > >     private TextField dnsServerField, domainNameField;
> > > > >     @InjectComponent("testConfigurationForm")
> > > > >     private Form testForm;
> > > >
> > > >
> > > > I checked the form using .getHasErrors() and it returned true on both
> > > > submits. It's only that on the first submit, nothing is shown for the
> > > > client !
> > > >
> > > > I also forced the form into 2 different validation errors and only
> the
> > > > second submission's error was shown, so its not like showing
> validation
> > > > errors for previous submissions. Even more, this strange behavior
> stops
> > > > after the first submission, everything works as expected !
> > > >
> > >
> > >
> > >
> > > --
> > > BR
> > > Ivan
> > >
> >
>
>
>
> --
> BR
> Ivan
>

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Ivan Khalopik <ik...@gmail.com>.
All this because of changed form controls names after ajax update (some
hash added to the end). After form submission this controls saves their
state for changed names (with hash) and then are rendered to client with
normal names(without hash). As they searches for erros by name they can not
find any.
I have my solution for such sittuations, to fix control names, make them
static. I've described this here:

http://mutabra.blogspot.com/2012/09/tapestry-fixed-control-name-fixin.html

On Mon, Nov 19, 2012 at 6:37 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> I use <t:error> for each field.
>
> Here is some more enlightening investigation results, based on the fact
> that the form's fields are changed using ajax, once the fields are updated,
> the fields errors are shown only after the first submission and the same
> happens every time the form field's are changed. So it has something to do
> with binding the fields with the "validation tracker on the client side".
>
> In another words, on the second submission, the page is fully loaded so the
> "client side validation tracker" is setup right and bound to the fields.
> But when I update the form's fields using ajax, it's broken. I have a
> feeling this could be wrong but its my very best guess so far.
>
> On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ik...@gmail.com>
> wrote:
>
> > Do you use <t:errors> component to show errors for whole form or just use
> > separate <t:error> components to show errors for particular field?
> >
> > On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <m.gelbana@gmail.com
> > >wrote:
> >
> > > When I first load my page, some form's fields are changed through ajax
> > and
> > > then I submit the form (Without ajax) with empty fields to force it
> into
> > > validation errors. But no errors are shown. If just submit the form
> > again,
> > > exactly as it was the last time, the errors are shown !
> > >
> > > That's how I inject my components
> > > private static final int MULTIPLE_BRAS_LOOP_END = 20;
> > >
> > > >     @InjectComponent
> > > >     private TextField dnsServerField, domainNameField;
> > > >     @InjectComponent("testConfigurationForm")
> > > >     private Form testForm;
> > >
> > >
> > > I checked the form using .getHasErrors() and it returned true on both
> > > submits. It's only that on the first submit, nothing is shown for the
> > > client !
> > >
> > > I also forced the form into 2 different validation errors and only the
> > > second submission's error was shown, so its not like showing validation
> > > errors for previous submissions. Even more, this strange behavior stops
> > > after the first submission, everything works as expected !
> > >
> >
> >
> >
> > --
> > BR
> > Ivan
> >
>



-- 
BR
Ivan

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Muhammad Gelbana <m....@gmail.com>.
I use <t:error> for each field.

Here is some more enlightening investigation results, based on the fact
that the form's fields are changed using ajax, once the fields are updated,
the fields errors are shown only after the first submission and the same
happens every time the form field's are changed. So it has something to do
with binding the fields with the "validation tracker on the client side".

In another words, on the second submission, the page is fully loaded so the
"client side validation tracker" is setup right and bound to the fields.
But when I update the form's fields using ajax, it's broken. I have a
feeling this could be wrong but its my very best guess so far.

On Mon, Nov 19, 2012 at 5:33 PM, Ivan Khalopik <ik...@gmail.com> wrote:

> Do you use <t:errors> component to show errors for whole form or just use
> separate <t:error> components to show errors for particular field?
>
> On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <m.gelbana@gmail.com
> >wrote:
>
> > When I first load my page, some form's fields are changed through ajax
> and
> > then I submit the form (Without ajax) with empty fields to force it into
> > validation errors. But no errors are shown. If just submit the form
> again,
> > exactly as it was the last time, the errors are shown !
> >
> > That's how I inject my components
> > private static final int MULTIPLE_BRAS_LOOP_END = 20;
> >
> > >     @InjectComponent
> > >     private TextField dnsServerField, domainNameField;
> > >     @InjectComponent("testConfigurationForm")
> > >     private Form testForm;
> >
> >
> > I checked the form using .getHasErrors() and it returned true on both
> > submits. It's only that on the first submit, nothing is shown for the
> > client !
> >
> > I also forced the form into 2 different validation errors and only the
> > second submission's error was shown, so its not like showing validation
> > errors for previous submissions. Even more, this strange behavior stops
> > after the first submission, everything works as expected !
> >
>
>
>
> --
> BR
> Ivan
>

Re: [5.3.6] Validation errors are only shown on the second submit

Posted by Ivan Khalopik <ik...@gmail.com>.
Do you use <t:errors> component to show errors for whole form or just use
separate <t:error> components to show errors for particular field?

On Mon, Nov 19, 2012 at 6:28 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> When I first load my page, some form's fields are changed through ajax and
> then I submit the form (Without ajax) with empty fields to force it into
> validation errors. But no errors are shown. If just submit the form again,
> exactly as it was the last time, the errors are shown !
>
> That's how I inject my components
> private static final int MULTIPLE_BRAS_LOOP_END = 20;
>
> >     @InjectComponent
> >     private TextField dnsServerField, domainNameField;
> >     @InjectComponent("testConfigurationForm")
> >     private Form testForm;
>
>
> I checked the form using .getHasErrors() and it returned true on both
> submits. It's only that on the first submit, nothing is shown for the
> client !
>
> I also forced the form into 2 different validation errors and only the
> second submission's error was shown, so its not like showing validation
> errors for previous submissions. Even more, this strange behavior stops
> after the first submission, everything works as expected !
>



-- 
BR
Ivan