You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Don Brown (JIRA)" <ji...@apache.org> on 2006/05/07 07:57:51 UTC

[jira] Resolved: (STR-2859) When using the form name is not used but the id, and the client validation using javascript fails

     [ http://issues.apache.org/struts/browse/STR-2859?page=all ]
     
Don Brown resolved STR-2859:
----------------------------

    Resolution: Duplicate

> When using <html:html xhtml="true"> the form name is not used but the id, and the client validation using javascript fails
> --------------------------------------------------------------------------------------------------------------------------
>
>          Key: STR-2859
>          URL: http://issues.apache.org/struts/browse/STR-2859
>      Project: Struts Action 1
>         Type: Bug

>   Components: Taglibs
>     Versions: 1.2.8
>  Environment: Linux Fedora 5
> Tomcat 5.5 and JBoss 4.0.3
> Struts 1.2.8
>     Reporter: Manuel Valladares

>
> When we use client javascript validation we have a problem when we try to set the strict xhtml format in the <html:html> tag.
> For example, in the following jsp code:
> <%@ page contentType="text/html; charset=utf-8" language="java" %>
> <%@ taglib uri="/tags/struts-tiles" prefix="tiles" %>
> <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
> <%@ taglib uri="/tags/struts-html" prefix="html" %>
> <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
> <%@ taglib uri="/tags/c" prefix="c" %>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html:html xhtml="true" locale="true">
> <html:errors/>
> <html:javascript formName="TmpForm"/>
> <head>
> </head>
> <html:form action="/Tmp.do" method="get" onsubmit="return validateTmpForm (this)">
> <html:text property="aparam"/>
> <html:submit/>
> <html:cancel/>
> </html:form>
> </html:html>
> The generated code for the form is:
> <form id="TmpForm" method="get" action="/MRE/Tmp.do;jsessionid=50AB02D65B89E98624364A26680EF831" onsubmit="return validateTmpForm (this)">
> As you see, it doesn't have a "name" property but a "id".
> And the validation javascript function created is:
>    function validate....(form) {
>         var isValid = true;
>         var focusField = null;
>         var i = 0;
>         var fields = new Array();
>         var formName = form.getAttributeNode("name"); 
>         oRange = eval('new ' + formName.value + '_floatRange()');
>         [...........]
>         return isValid;
>     }
> But the form doesn't have a "name" property. And the javascript fails.
> If you change the generated javascript code looking for "id" instead of "name" everything should work fine.
> For example, you could produce a code like:
>    function validate....(form) {
>         var isValid = true;
>         var focusField = null;
>         var i = 0;
>         var fields = new Array();
>         var formName = form.getAttributeNode("name") ? form.getAttributeNode("name") : form.getAttributeNode("id");
>              
>         oRange = eval('new ' + formName.value + '_floatRange()');
>         [...........]
>         return isValid;
>     }
> Hope this helps.
>                        Manuel Valladares

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira