Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.1.9
-
None
-
Urgent
Description
The multi value field with fi:styling list-type="double-listbox" relies on forms_onsubmitHandlers to select all items in the right selection list before submitting. In an ajax form, it seems like forms_onsubmit is not installed on the form, so handlers are not called; in forms-field-styling.xsl this is clearly stated :
<xsl:choose>
<xsl:when test="@ajax = 'true'">
<xsl:attribute name="dojoType">CFormsForm</xsl:attribute>
<xsl:if test="@ajax = 'true'">
<script type="text/javascript">cocoon.forms.ajax = true;</script>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="onsubmit">forms_onsubmit(); <xsl:value-of select="@onsubmit"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
I don't think installing forms_onsubmit() also on ajax forma is a wise solution, but maybe we should call it from inside the ajax code, or at least check and execute onsubmit_handlers. If not, also the free-form multivalue field editor will not work correctly.
What's the best way to fix this issue?
<xsl:choose>
<xsl:when test="@ajax = 'true'">
<xsl:attribute name="dojoType">CFormsForm</xsl:attribute>
<xsl:if test="@ajax = 'true'">
<script type="text/javascript">cocoon.forms.ajax = true;</script>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="onsubmit">forms_onsubmit(); <xsl:value-of select="@onsubmit"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
I don't think installing forms_onsubmit() also on ajax forma is a wise solution, but maybe we should call it from inside the ajax code, or at least check and execute onsubmit_handlers. If not, also the free-form multivalue field editor will not work correctly.
What's the best way to fix this issue?