[ 
https://issues.apache.org/struts/browse/WW-2659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Musachy Barroso closed WW-2659.
-------------------------------

    Resolution: Duplicate

I tried to replicate this issue and it is working as expected. This was fixed 
when the code was changed to search for the first node, instead of just getting 
the first child of the form.

> AJAX validation does not work when xhtml forms contain hidden form fields
> -------------------------------------------------------------------------
>
>                 Key: WW-2659
>                 URL: https://issues.apache.org/struts/browse/WW-2659
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - Dojo Tags
>    Affects Versions: 2.1.2
>         Environment: struts2-core-2.1.2 struts2-dojo-plugin-2.1.2.jar 
> xwork-2.1.1 Firefox-2.0.0.14 Ubuntu-Gutsy
>            Reporter: Owen Berry
>             Fix For: 2.1.3
>
>
> Problem: validation errors returned from the server can not be inserted into 
> the page content.
> StrutsUtils.showValidationErrors in utils.js tries to detect the theme that 
> is being used for the form by checking to see if the first child node of the 
> form is a table node (line 53). If you have a hidden form field, the first 
> child node is actually the hidden field, so the code thinks you are using the 
> css_xhtml theme and fails to report validation errors within the page 
> correctly - instead it pops up a Javascript alert indicating: "Could not 
> validate: form_user_firstName".
> JSP Code:
>   <s:form method="post" namespace="/nodecorate" action="mysettings_update" 
> theme="xhtml" id="form">
>     <s:textfield key="user.firstName" />
>     <s:textfield key="user.lastName" />
>     <s:textfield key="user.emailAddress" />
>     <s:hidden name="user.version" />
>     <sx:submit validate="true" ajaxAfterValidation="true" targets="response" 
> showLoadingText="false" />
>   </s:form>
> A workaround is to make the hidden field part of the table:
>   <tr style="display:none"><td colspan="2"><s:hidden name="user.version" 
> /></td></tr>
> In addition to the above, it would also be good if addErrorCSS() in 
> css_xhtml/validation.js could actually report the error if it cannot figure 
> out the layout of the page. See line 83-45.

-- 
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