After stepping through the javascript, I believe it's because the onsubmit event handler for the form is "javascript:Tapestry.waitForPage(event);" who's first line is "if (Tapestry.pageLoaded) return;".

This is the equivalent of "if (Tapestry.pageLoaded) return false;" when evaluated to a boolean as it is in the LinkSubmit onClick handler:

if (onsubmit == undefined || onsubmit.call(window.document, event))
{
   this.createHidden();
   this.form.submit();
}

.. and therefore "this.form.submit();" is never called.

Obviously this is a bug, I'm pretty sure the resolution would be to change Tapestry.waitForPage so that it returns true if the page is loaded and false otherwise, ie:

waitForPage : function(event)
{
   if (Tapestry.pageLoaded) return true;
   ...
   return false;
}

This will allow 'waitForPage' to be evaluated to a boolean as it is in LinkSubmit.onClick.

p.

Paul Stanton wrote:
Hi,

I'm guessing I'm doing something wrong but it's hardly obvious. I have a Form, with a LinkSubmit and a Submit:

   <t:form t:id="myForm">
       <t:linksubmit t:id="myLink">link</t:linksubmit>
       <t:submit t:id="mySubmit" />
   </t:form>

   public void onSuccessFromMyForm()
   {
       LOG.debug("onSuccessFromMyForm");
   }

   public void onSelectedFromMyLink()
   {
       LOG.debug("onSelectedFromMyLink");
   }

   public void onSelectedFromMySubmit()
   {
       LOG.debug("onSelectedFromMySubmit");
   }


The form is submitted and the listener(s) are called when I click the submit, however nothing all all happens when I click the link.

p.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


Reply via email to