[ 
https://issues.apache.org/jira/browse/TAP5-1180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12876540#action_12876540
 ] 

Paul Stanton commented on TAP5-1180:
------------------------------------

i've tested my above idea re returning true from waitForPage and it didn't work.

it seems that 'onsubmit.call(window.document, event)' returns 'undefined' 
regardless of what the function returns.

therefore my workaround is to comment out the whole if statement in 
LinkSubmit.onClick:

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

Having done this, linksubmit works again, however obviously it doesn't handle a 
premature click properly.

Hope that helps you find the proper solution.

p.

> 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