LinkSubmit does nothing
-----------------------

                 Key: TAP5-1180
                 URL: https://issues.apache.org/jira/browse/TAP5-1180
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.1.0.5
            Reporter: Paul Stanton


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, however there may be a better solution.




EG:

MyPage.tml:
----------------------------------------------------------------------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"; 
xmlns:p="tapestry:parameter">
        <t:form t:id="myForm">
                <t:linksubmit t:id="myLink">link</t:linksubmit>
                <t:submit t:id="mySubmit" />
        </t:form>
</html>
----------------------------------------------------------------------------------------------------------------------------------------------------
MyPage.java
----------------------------------------------------------------------------------------------------------------------------------------------------
 public Class MyPage
{
  public void onSuccessFromMyForm()
   {
       LOG.debug("onSuccessFromMyForm");
   }

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

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

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to