Hi Carlos,

Ah is just see that i just missed adding the following code :-
 ajaxResponseRenderer.addRender(zone1).addRender(zone2);
This will work for sure :)

Answer for your question:

Yes we have to bind the form under the zone if you want it to be ajax:
Taken from Tapestry doc:- the zone parameter will cause the form submission
to be handled as an Ajax request that updates the indicated zone. Often a
Form will update the same zone that contains it.

Just remove the javascript that you use , as tapestry provides you with an
inbuilt solution as above. You donot specifically need to do
 event.preventDefault();


Try it out.

Regards
Akshay




On Thu, Dec 11, 2014 at 8:27 AM, Carlos Gómez Montiel <ibe...@gmail.com>
wrote:

> Any last question:
>
> Have you ALWAYS wrap an ajax form inside a zone like below?
>
> <t:zone t:id='zone1' id='zone1'>
> <t:form t:id='form1' t:zone="^">
>     <t:submit value="send"/>
> </t:form>
> </t:zone>
>
> In my first example the form isn't wrapped but it works fine. I wonder if
> it is correct:
> <t:form t:id='form1' t:zone='zone1'>
>     <t:submit value="send"/>
> </t:form>
>
> <t:zone t:id='zone1' id='zone1'>
> </t:zone>
>
>
> Thanks in advance
>
>
> 2014-12-11 0:05 GMT-06:00 Carlos Gómez Montiel <ibe...@gmail.com>:
>
> > George, yes I'm using tapestry-jquery but in the links you wrote is the
> > solution:
> >
> > $("#form1").submit(function(event) {
> >        event.preventDefault();
> >       event.stopImmediatePropagation(); // it prevents the submit hit
> > });
> >
> > Thank you for your feedback and comments.
> >
> >
> >
> > 2014-12-10 23:20 GMT-06:00 George Christman <gchrist...@cardaddy.com>:
> >
> > hmm I see your using jquery and I know 3.7 uses prototype. Are you using
> >> Tapestry-Jquery or bringing in jquery with no conflict?
> >>
> >> You can write your own mixin to handle this, your not required to have
> to
> >> use 5.4 to get this to work.
> >>
> >> Here's an example of how Tapestry-Jquery is getting this to work using
> >> jquery in 3.7
> >>
> >> http://tapestry5-jquery.com/mixins/docsconfirm
> >>
> >>
> >>
> https://github.com/got5/tapestry5-jquery/blob/v3.3.7/src/main/java/org/got5/tapestry5/jquery/mixins/Confirm.java
> >>
> >>
> >>
> https://github.com/got5/tapestry5-jquery/blob/v3.3.7/src/main/resources/org/got5/tapestry5/jquery/assets/mixins/confirm/confirm.js
> >>
> >> On Thu, Dec 11, 2014 at 12:06 AM, Carlos Gómez Montiel <
> ibe...@gmail.com>
> >> wrote:
> >>
> >> > Thank you for your answer George:
> >> >
> >> > > The other more recommended way if it's just a simple confirm box is
> to
> >> > use the confirm mixin
> >> > I'm using tapestry 5.3.7
> >> >
> >> > I had change my example with your recomendations:
> >> >
> >> > .tml
> >> > <head>
> >> >         <script>
> >> >             $(document).ready(function() {
> >> >                 $("#form1").submit(function() {
> >> >                     return false;
> >> >                 });
> >> >             });
> >> >         </script>
> >> >     </head>
> >> >
> >> >     <t:zone t:id="zone1" id="zone1">
> >> >             <t:form t:id='form1' t:zone='^'>
> >> >             <t:submit value="enviar"/>
> >> >         </t:form>
> >> >     </t:zone>
> >> >
> >> >     <t:zone t:id='zone2' id='zone2'>
> >> >     </t:zone>
> >> >
> >> > .java
> >> > @Inject
> >> >     private AjaxResponseRenderer ajaxResponseRenderer;
> >> >     @InjectComponent
> >> >     private Zone zone2;
> >> >
> >> >     void onSelected() {
> >> >         ajaxResponseRenderer.addRender(zone2);
> >> >     }
> >> >
> >> >
> >> > But the effect is the same, the ajax post is sent to server. Anyone
> can
> >> > help me how can I stop the ajax form submit?
> >> >
> >> > Thanks in advance
> >> >
> >> > 2014-12-10 22:25 GMT-06:00 George Christman <gchrist...@cardaddy.com
> >:
> >> >
> >> > > Take a look at this page, it will show you the life cycle of the
> >> tapestry
> >> > > methods. You are returning zone2 in your onSuccess method. and
> >> probably
> >> > > should use onSelected
> >> > >
> >> > >
> >> > >
> >> >
> >>
> http://jumpstart.doublenegative.com.au/jumpstart7/examples/navigation/whatiscalledandwhen
> >> > >
> >> > > One way to do it to use an event handler and on the backend return
> the
> >> > zone
> >> > > from the event handler. example
> >> > >
> >> > > <t:submit t:event="confirm"/>
> >> > >
> >> > > Object onConfirm() {
> >> > >     return yourZone;
> >> > > }
> >> > >
> >> > > The other more recommended way if it's just a simple confirm box is
> to
> >> > use
> >> > > the confirm mixin. This will prevent the loop to the backend and
> just
> >> do
> >> > > everything in the UI via javascript.
> >> > >
> >> > > <t:submit t:mixins="confirm" message="some message" title="some
> >> title"/>
> >> > >
> >> > >
> >> > >
> >> >
> >>
> https://github.com/apache/tapestry-5/blob/5.4-beta-22/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/Confirm.java
> >> > >
> >> > > On Wed, Dec 10, 2014 at 7:28 PM, Carlos Gómez Montiel <
> >> ibe...@gmail.com>
> >> > > wrote:
> >> > >
> >> > > > Hi akshay, thank you for your answer.
> >> > > >
> >> > > > I had changed my example with your recomendation but the problem
> >> > persist
> >> > > > and the ajax post is sent when you press the submit:
> >> > > >
> >> > > > Test.tml
> >> > > > <head>
> >> > > >         <script>
> >> > > >             $(document).ready(function() {
> >> > > >                 $("#form1").submit(function(e) {
> >> > > >                     return false;
> >> > > >                 });
> >> > > >             });
> >> > > >         </script>
> >> > > >     </head>
> >> > > >
> >> > > >     <t:zone t:id="zone1" id="zone1">
> >> > > >             <t:form t:id='form1' t:zone='^'>
> >> > > >             <t:submit value="enviar"/>
> >> > > >         </t:form>
> >> > > >     </t:zone>
> >> > > >
> >> > > >     <t:zone t:id='zone2' id='zone2'>
> >> > > >         ${name}
> >> > > >     </t:zone>
> >> > > >
> >> > > > Test.java
> >> > > > @Inject
> >> > > >     private AjaxResponseRenderer ajaxResponseRenderer;
> >> > > >     @InjectComponent
> >> > > >     private Zone zone1, zone2;
> >> > > >
> >> > > >     @Log
> >> > > >     public String getName() {
> >> > > >         return "bierck" + Math.random();
> >> > > >     }
> >> > > >
> >> > > >
> >> > > >     void onSuccess() {
> >> > > >         ajaxResponseRenderer.addRender(zone2);
> >> > > >     }
> >> > > >
> >> > > >
> >> > > > Anyone can help me? how can I prevent the ajax form's submit ?
> >> > > >
> >> > > > Thank you
> >> > > >
> >> > > > 2014-12-10 16:45 GMT-06:00 akshay <akshayestat...@gmail.com>:
> >> > > >
> >> > > > > Hi,
> >> > > > >
> >> > > > > your structure should look like this:
> >> > > > > .tml strcuture:-
> >> > > > >
> >> > > > > <t:zone t:id='zone1' id='zone1'>
> >> > > > > <t:form t:id='form1' t:zone="^">
> >> > > > >     <t:submit value="send"/>
> >> > > > > </t:form>
> >> > > > > </t:zone>
> >> > > > >
> >> > > > > <t:zone t:id='zone2' id='zone2'>
> >> > > > > Your Content
> >> > > > > </t:zone>
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > The .java file structure
> >> > > > > @InjectComponent
> >> > > > > private Zone zone1,zone2;
> >> > > > > @Inject
> >> > > > > private AjaxResponseRender
> >> > > > > OnSuccess(){
> >> > > > > ajaxResponseRenderer.addRender(zone2) or zone2.getBody();
> >> > > > > }
> >> > > > >
> >> > > > > Regards
> >> > > > > Akshay
> >> > > > >
> >> > > > > On Wed, Dec 10, 2014 at 11:25 PM, Carlos Gómez Montiel <
> >> > > ibe...@gmail.com
> >> > > > >
> >> > > > > wrote:
> >> > > > >
> >> > > > > > Thank you for your answer George.
> >> > > > > >
> >> > > > > > > Are you trying to create an ajax form submit? If so, you
> >> should
> >> > be
> >> > > > > > wrapping the form with the zone
> >> > > > > >
> >> > > > > > Yes, I'm trying to create an ajax form submit, I don't
> >> understand
> >> > > why I
> >> > > > > > should be wrapping the form with the zone, what is the reason?
> >> as
> >> > > far I
> >> > > > > > know in my example I'm sending the form via ajax and then
> >> > refreshing
> >> > > > the
> >> > > > > > zone 'zone1' returning the zone1's body in the onsuccess()
> >> event in
> >> > > the
> >> > > > > > .java
> >> > > > > >
> >> > > > > > >As far as the confirm dialog goes, you could either
> >> > > > > > use a confirm mixin or if you chose to use a zone style
> >> approach,
> >> > on
> >> > > > > submit
> >> > > > > > return another zone for your confirm dialog.
> >> > > > > >
> >> > > > > > I'm using a mixin for show the confirm dialog (with bootstrap)
> >> but
> >> > > > don't
> >> > > > > > found how to prevent the ajax form's submit. Any one can help
> me
> >> > with
> >> > > > it?
> >> > > > > >
> >> > > > > > Thanks in advance
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > > 2014-12-10 7:44 GMT-06:00 George Christman <
> >> > gchrist...@cardaddy.com
> >> > > >:
> >> > > > > >
> >> > > > > > > Are you trying to create an ajax form submit? If so, you
> >> should
> >> > be
> >> > > > > > wrapping
> >> > > > > > > the form with the zone. As far as the confirm dialog goes,
> you
> >> > > could
> >> > > > > > either
> >> > > > > > > use a confirm mixin or if you chose to use a zone style
> >> approach,
> >> > > on
> >> > > > > > submit
> >> > > > > > > return another zone for your confirm dialog.
> >> > > > > > >
> >> > > > > > > On Wed, Dec 10, 2014 at 3:47 AM, Carlos Gómez Montiel <
> >> > > > > ibe...@gmail.com>
> >> > > > > > > wrote:
> >> > > > > > >
> >> > > > > > > > Hi there
> >> > > > > > > >
> >> > > > > > > > How can I prevent ajax form's event submit when the user
> >> > clicks a
> >> > > > > > submit
> >> > > > > > > > button?
> >> > > > > > > > I need to prevent the event for show an confirm dialog
> >> before
> >> > it
> >> > > > will
> >> > > > > > be
> >> > > > > > > > submited.
> >> > > > > > > >
> >> > > > > > > > My form:
> >> > > > > > > >
> >> > > > > > > > <t:form t:id='form1' t:zone='zone1'>
> >> > > > > > > >     <t:submit value="send"/>
> >> > > > > > > > </t:form>
> >> > > > > > > >
> >> > > > > > > > <t:zone t:id='zone1' id='zone1'>
> >> > > > > > > > </t:zone>
> >> > > > > > > >
> >> > > > > > > > Thanks in advance
> >> > > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > --
> >> > > > > > > George Christman
> >> > > > > > > CEO
> >> > > > > > > www.CarDaddy.com
> >> > > > > > > P.O. Box 735
> >> > > > > > > Johnstown, New York
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > --
> >> > > > > Cheers!!
> >> > > > > Akshay
> >> > > > >
> >> > > >
> >> > >
> >> > >
> >> > >
> >> > > --
> >> > > George Christman
> >> > > CEO
> >> > > www.CarDaddy.com
> >> > > P.O. Box 735
> >> > > Johnstown, New York
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> George Christman
> >> CEO
> >> www.CarDaddy.com
> >> P.O. Box 735
> >> Johnstown, New York
> >>
> >
> >
>



-- 
Cheers!!
Akshay

Reply via email to