Yes, you always wrap an ajax form with a zone and akshay is correct, you
need to return multiple zones as he showed you. Sorry, I missed that.
Unless your doing some sort of backend processing where you need to load
some data within your second zone from the backend, I would avoid the round
trip to the app server and just use the confirm mixin. If your using
tapestry-jquery they already provide you with the mixin, so no js needed.

On Thu, Dec 11, 2014 at 3:42 AM, akshay <akshayestat...@gmail.com> wrote:

> 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
>



-- 
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

Reply via email to