Kamal Bhatt wrote:
Hi again,
I had a play with Ajax and tabs. I am not happy that all elements are on the screen at the time, but I can leave with it for now (thanks to Ajax).

However, I have discovered that problem with tabs and validation [1]. I disagree with the assertion that the fix for this is to create a ft:validation-error, that just hides the underlying problem. I think the proper solution is to turn off ajax when doing a full submit. I was wondering if anyone had any ideas how to do this? I tried to change the DOM structure and set the ajax attribute on the form to false on the click of the submit. This had less than optimal results.

So I guess my question is how do you to tell CForms to resubmit the whole form?

Thanks.

[1] http://marc.info/?l=xml-cocoon-dev&m=117269621604981&w=2

I think I have my solution. Can someone tell me what is wrong with my solution (it seems completely dodgy)?

I setup my forms-sample-styling to do the following:

<?xml version="1.0"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:fi="http://apache.org/cocoon/forms/1.0#instance";
               exclude-result-prefixes="fi">

<!--+ Include styling stylesheets, one for the widgets, the other one for the
     | page. As 'forms-advanced-field-styling.xsl' is a specialization of
| 'forms-field-styling.xsl' the latter one is imported there. If you don't
     | want advanced styling of widgets, change it here!
| See xsl:include as composition and xsl:import as extension/inheritance.
     +-->
<xsl:include href="resource://org/apache/cocoon/forms/resources/forms-page-styling.xsl"/> <xsl:include href="resource://org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl"/>

<!-- Location of the resources directory, where JS libs and icons are stored -->
 <xsl:param name="resources-uri">resources</xsl:param>

 <xsl:template match="head">
   <head>
     <xsl:apply-templates select="." mode="forms-page"/>
     <xsl:apply-templates select="." mode="forms-field"/>
     <xsl:apply-templates/>
     <script type="text/javascript">
       function turnOffAjax()
       {
           var frm = document.getElementById("kamal");
           frm.setAttribute("onsubmit", "forms_onsubmit();");
           frm.setAttribute("ajax", "false");
           cocoon.forms.ajax = false;
       }
     </script>
   </head>
 </xsl:template>

 <xsl:template match="body">
   <body>
     <!--+ !!! If template with mode 'forms-page' adds text or elements
| template with mode 'forms-field' can no longer add attributes!!!
         +-->
     <xsl:apply-templates select="." mode="forms-page"/>
     <xsl:apply-templates select="." mode="forms-field"/>
     <xsl:apply-templates/>
   </body>
 </xsl:template>

<xsl:template match="fi:action[fi:styling/@force-full-submit = 'true']" priority="100"> <input id="[EMAIL PROTECTED]" type="submit" name="[EMAIL PROTECTED]" title="{fi:hint}" onclick="turnOffAjax()"> <xsl:attribute name="value"><xsl:value-of select="fi:label/node()"/></xsl:attribute>
     <xsl:apply-templates select="." mode="styling"/>
   </input>
 </xsl:template>
</xsl:stylesheet>



--
Kamal Bhatt


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to