You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Massimo Lusetti (Resolved) (JIRA)" <ji...@apache.org> on 2011/10/14 19:06:11 UTC
[jira] [Resolved] (TAP5-1180) LinkSubmit does nothing
[ https://issues.apache.org/jira/browse/TAP5-1180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Massimo Lusetti resolved TAP5-1180.
-----------------------------------
Resolution: Won't Fix
I've tested this against 5.1.0.5 and it still apply, I mean LinkSubmit don't fire the events while Submit does.
Tested against latest 5.3-beta21 LinkSubmit works as expected (fire the event and form submission)
A workaround for 5.1.0.5 is to monkey patch tapestry.js
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira